是有效/合法的css设置高度为0以达到与display:none相同的效果吗?
.item {
height: 0;
overflow: hidden;
}
答案 0 :(得分:1)
它有效,但不一样。如果你有一个固定的元素(例如),它将仍然显示,除非你将其父元素设置为display:none
:
https://jsfiddle.net/L0o1spko/1/
.item1 {
height: 0;
overflow: hidden;
}
.fixed { position:fixed;}
.item2 {
display: none;
}
<div class="item1">
This content has a height of 0.
<div class="fixed">
sdfsdffsfsdf
</div>
</div>
<div class="item2">
This content has a display of none.
<div class="fixed">
sdfsdffsfsdf
</div>
</div>
答案 1 :(得分:1)
将高度设置为0完全有效,可用于许多内容,例如您的内容和#34;滑入的动画。从无到有。 这个概念没有任何问题,你可能经常需要它。
但是,如果我是你,我会质疑你为什么要使用它而不是显示无?如果它只是隐藏一个项目,那么它实际上是以语义方式错误的,如果可以,你应该避免这样做。 另一方面,如果你有一个类似于我之前的解释的充分理由,那就去吧,它没有任何问题。
答案 2 :(得分:1)
这是合法的,但您可能还想设置position: absolute
以及visibility: hidden
,以便它不会占用任何空间或其中任何一个孩子或内容显示在屏幕上。