HTML DIV 显示无元素调整大小

HTML DIV display none to element adjust size

本文关键字:调整 元素 DIV 显示 HTML      更新时间:2023-09-26

如何自动将div的大小调整为其可见内容?我有一个显示单选按钮的页面,但用户可以选择仅查看特定数量的单选按钮。当我单击复选框以隐藏元素时,它们消失了。但是,div 保持相同的大小。我该如何解决这个问题?

法典

<script>
function getElementsByClass( searchClass, domNode, tagName) { 
    if (domNode == null) domNode = document;
    if (tagName == null) tagName = '*';
    var el = new Array();
    var tags = domNode.getElementsByTagName(tagName);
    var tcl = " "+searchClass+" ";
    for(i=0,j=0; i<tags.length; i++) { 
        var test = " " + tags[i].className + " ";
        if (test.indexOf(tcl) != -1) 
            el[j++] = tags[i];
    } 
    return el;
}
function checkChange(checkbox)
{
  if (checkbox.checked)
  {
      if(checkbox.value == "Intel"){
          var tabs = getElementsByClass('Intel');
          for( i=0; i < tabs.length; i++)
              tabs[i].style.display='none';
      }
  }else if(!checkbox.checked)
  {
       if(checkbox.value == "Intel"){
          var tabz = getElementsByClass('Intel');
          for (i =0; i < tabz.length; i ++)
              tabz[i].style.display="inline";}
      }
  }
</script>
<form action="">
<input type="checkbox" name="category" value="Intel" onclick="checkChange(this)" /> Intel processoren<br>
<input type="checkbox" name="category" value="Amd" onclick="checkChange(this)" /> AMD processoren<br>
</form>
</div>
<div id="items">
<form action="get.jsp?value=Processoren" method="post">
// JSP CODE FOR ALL CHECKBOXES !!!//
<hr>
<input type="submit" value="Send">
</div>
</div>

要使div 自动调整为其可见内容,您应该将其样式设置为"显示:块"和"溢出:可见"。

请参阅以下示例:

$(document).ready(function(){
  
  $("#case1cnt").hide();
  $("#case2cnt").hide();
  $("#case3cnt").hide();
  
  $("#case1").click(function(){
    $("#case1cnt").toggle();
  });
  $("#case2").click(function(){
    $("#case2cnt").toggle();
  });
  $("#case3").click(function(){
    $("#case3cnt").toggle();
  });  
})
#content {
  display: block;
  overflow: visible;
  margin-top: 16px;
  padding: 8px;
  background-color: lightgreen;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="case1" type=checkbox /> Case 1<br />
<input id="case2" type=checkbox /> Case 2<br />
<input id="case3" type=checkbox /> Case 3<br />
<div id=content>
  <p>Static content</p>
  <p id="case1cnt">Case 1 content</p>
  <p id="case2cnt">Case 2 content</p>
  <p id="case3cnt">Case 3 content</p>
<div>