【一文一问】display:none VS visibility:hidden VS opacity:0

215 阅读1分钟

一个函数实现一个功能,一篇文章解决一个痛点

前言

要隐藏一个元素,有多种方法,比如display:none 、visibility:hidden、opacity:0。看上去元素都消失了,可是它们真的消失在文档流里了吗?

display:none

有两个方块,下图为未加display:none image.png 下图为加了display:none

image.png 结论:display:none:从文档中删除元素。它不会占据任何空间

visibility:hidden

有两个方块,下图为未加visibility:hidden

image.png 下图为加了visibility:hidden

image.png 结论:visibility:hidden:隐藏元素,但仍占据布局中的空间。

opacity:0

有两个方块,下图为未加opacity:0

image.png 下图为加了opacity:0

image.png 结论:opacity:0:隐藏元素,但仍占据布局中的空间。

总结

display: nonevisibility: hiddenopacity: 0
从文档中删除元素。它不会占据任何空间隐藏元素,但仍占据布局中的空间隐藏元素,但仍占据布局中的空间