You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

div嵌套table无法完全折叠:table宽度仍保留的技术问题求助

问题解决:折叠Table后Div仍保留宽度的问题

问题原因

你当前用visibility: collapse来隐藏table,但这个属性的特性是隐藏元素但保留其原本占据的布局空间,所以即使table不可见,它的宽度依然会撑开外层的div。而visibility: visible只是恢复可见性,同样不会改变元素的布局占用。

解决方案

将控制可见性的属性从visibility换成display:

  • 隐藏table时用display: none,这会让元素完全脱离文档流,不再占据任何布局空间
  • 显示table时用display: table(还原table默认的display属性)

修改后的代码

JavaScript部分

function showmenu(btn) {
  switch (btn.value) {
    case "expand":
      btn.innerText = "x";
      btn.value = "hide";
      document.getElementById("show_lines").style.display = "table";
      break;
    case "hide":
      btn.innerText = "+";
      btn.value = "expand";
      document.getElementById("show_lines").style.display = "none";
      break;
  }
}

HTML部分

<div class="menu" style="position:absolute;z-index:10;border:1px solid black;">
  <button value="expand" onclick="showmenu(this)">+</button>
  <table id="show_lines" style="display:none;">
    <tr><td><input type="checkbox">Show lines</input></td></tr>
  </table>
</div>

注:已修正你HTML中未闭合的<td>标签。

内容的提问来源于stack exchange,提问作者armagedescu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:04:56