1、display:none
当将一个元素的display属性设置为none时,该元素将不会显示在网页中,并且不会占据任何空间。也就是说,该元素会完全隐藏,其他的元素会立即占据它原来的位置。该属性适用于需要完全隐藏某个元素的场景。
// html代码:完全隐藏子元素 <div class="father"> <div class="child">子元素</div> </div>
// css代码:为了更好观看结果,给他们加上背景颜色 * { padding: 0; margin: 0; } .father { background-color: skyblue; height: 500px; width: 100%; border: 1px solid black; } .child { background-color: pink; height: 700px; width: 300px; display: none; }
2、overflow:hidden
当将一个元素的overflow属性设置为hidden时,它会裁剪超出其指定尺寸的内容,并且隐藏被裁剪的内容。该属性适用于需要限制元素内部内容溢出的场景。
// html代码:隐藏溢出的部分子元素 <div class="father"> <div class="child"></div> </div>
// css代码: * { padding: 0; margin: 0; } .father { background-color: skyblue; height: 500px; width: 100%; border: 1px solid black; overflow: hidden; } .child { background-color: pink; height: 700px; width: 300px; }
3、总结
(1)占据空间:display:none 渲染时不再占据任何空间,会让元素从DOM树中完全消失,而overfl:hidden会继续占据空间,只是溢出部分隐藏;
(2)回流与渲染:display:none会产生回流和重绘,而overfl:hidden不会;
(3)浏览器解析:display:none浏览器不会解析该元素,而overfl:hidden会。