固定尺寸表隐藏/取消隐藏

时间:2011-03-22 20:24:22

标签: javascript jquery css html

我用来隐藏/取消隐藏div的技术如下:

$("#" + sectionId).css("display", "");      // unhide
$("#" + sectionId).css("display", "none");  // hide

这很好用,除了我需要让这个隐藏/取消隐藏不影响页面其余部分的尺寸。也就是说,我不希望隐藏内容的行为缩小其周围的所有内容。换句话说,如果div始终可见,我宁愿保持页面上所有内容的维度。我已经尝试将div设置为零高度,但这似乎没有效果。

注意:这些div实际上位于表中,因此单元格会自动调整大小以适应内容(我不想要)。

更新:好的,有一半问题已经解决,但请注意,这是一个而不是 div ,我试图隐藏/取消隐藏。我需要将表高度缩小到零但保持其宽度。

3 个答案:

答案 0 :(得分:7)

我相信你正在寻找CSS visibility属性。 http://www.w3schools.com/css/pr_class_visibility.asp

答案 1 :(得分:3)

改为使用visibility='hidden'visibility='visible'

$("#" + sectionId).css("visibility", "visible");  // unhide
$("#" + sectionId).css("visibility", "hidden");   // hide

这将使对象保持在页面中,但它将是“不可见的”,而不是使用display“删除”。

More info


修改

至于新编/编辑的问题:

  

好的,问题的一半已经解决,但请注意,这是一张桌子而不是我试图隐藏/取消隐藏的div。我需要将表高度缩小到零但保持其宽度。

将表格宽度设置为固定值,并使用display属性隐藏包含内容的div:

<table style="width: 500px;">
  <tr><td>
    <div id='div1'>Some content</div>
  </td></tr>
</table>

当您现在使用您在问题中使用的代码隐藏div1时,表格宽度应保持相同的宽度,但高度会缩小。

EDIT2 A simple example

答案 2 :(得分:2)

请尝试设置visibility

//hide
$('#element').css('visibility', 'hidden');

//show
$('#element').css('visibility', 'visible');