display:none和visibility:hidden的区别

一、display:none

   设置了display:none的元素,会从DOM结构中消失,隐藏后的元素不占据任何空间;他是一个非继承属性,通过修改其后代元素的属性,也不能让后代元素显示出来。

<body>
    <div>
        <strong>给元素设置display:none样式</strong>
        <p>A元素</p>
        <p style='display:none;'>B元素</p>
        <p>C元素</p>
    </div>
</body>

display:none和visibility:hidden的区别

 二、visibility:hidden

  设置了visibility:hidden的元素,隐藏的元素虽然在页面上看不到了,但是仍然占据原本的空间,会影响页面的布局;他是一个非继承属性,在后代元素上设置visibility: visible,后代元素会再次显示出来。

<body>
    <div>
        <strong>给元素设置visibility:hidden样式</strong>
        <p>A元素</p>
        <p style='visibility:hidden;'>B元素</p>
        <p>C元素</p>
    </div>
</body>

display:none和visibility:hidden的区别

 还有一个重要的不同点是:display:none会引起回流,visibility:hidden不会引起回流,对性能影响分别很大。

上一篇:UVALive 6665 Dragon’s Cruller --BFS,类八数码问题


下一篇:解决浏览器回退不刷新页面问题