CSS:隐藏元素但保持宽度(而不是高度)

时间:2013-05-21 20:06:22

标签: css height width hide

  • display:none将完全隐藏元素,就好像它现在的宽度和高度为零
  • 一样 另一方面,
  • visibility:hidden将隐藏元素,但在文档中保留元素原始宽度和高度的矩形。

有没有办法通过纯CSS来隐藏一个元素,使它占据零高度但是它的原始宽度?将其高度设置为零不起作用,因为我不想知道将元素设置为哪个高度,一旦我想再次显示它。

具体来说,我希望实现以下目标:

#top ul        {take up zero height but original width}
#top:hover ul  {restore original dimensions}

编辑:解决了!我们的想法是设置height:auto以恢复原始高度。

请参阅此处http://jsfiddle.net/yP59s/了解完整版本或此处的css:

ul {margin:0px}
#top {border:1px solid}
#top ul {height:0px;overflow:hidden}
#top:hover ul {height:auto;}

和html:

<div id="top">
    <h1>foobar</h1>
    <ul>
        <li>foo</li>
        <li>bar</li>
    </ul>
</div>
blubber

2 个答案:

答案 0 :(得分:4)

#top         { width: 300px; height:0px; max-height:0px; }
#top:hover   {height: auto; width: 300px; }

http://jsfiddle.net/G5cgY/

答案 1 :(得分:0)

使用css

<a href="#box1">Show Box 1</a>|<a href="#box2">Show Box 2</a>|<a href="#hidebox">Hide All</a>

<div id="box1" class="box"> Contents of Box 1 </div>
<div id="box2" class="box"> Contents of Box 2 </div>

和css

.box{
border: 2px solid #ccc;
padding:20px;
margin:20px 0 0;
max-height:150px;
max-width:300px;
display:none;  }



.box:target{
    display:block;
}

我在几个月前发现了这个小提琴,可能会有所帮助: http://jsfiddle.net/DbXQs/