我用来隐藏/取消隐藏div的技术如下:
$("#" + sectionId).css("display", ""); // unhide
$("#" + sectionId).css("display", "none"); // hide
这很好用,除了我需要让这个隐藏/取消隐藏不影响页面其余部分的尺寸。也就是说,我不希望隐藏内容的行为缩小其周围的所有内容。换句话说,如果div始终可见,我宁愿保持页面上所有内容的维度。我已经尝试将div设置为零高度,但这似乎没有效果。
注意:这些div实际上位于表中,因此单元格会自动调整大小以适应内容(我不想要)。
更新:好的,有一半问题已经解决,但请注意,这是一个表而不是 div ,我试图隐藏/取消隐藏。我需要将表高度缩小到零但保持其宽度。
答案 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
“删除”。
至于新编/编辑的问题:
好的,问题的一半已经解决,但请注意,这是一张桌子而不是我试图隐藏/取消隐藏的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');