首页
学习
活动
专区
圈层
工具
发布

display:none和visibility:hidden的区别

空间占据上的区别 如果用文字来描述,简单一句话就是display:none的元素是彻底消失,也就是说该元素的宽度、高度等各种属性值都将“丢失”,不在文档流中占位,浏览器也不会解析该元素;而visibility...因此,我们可以知道display:none的元素隐藏后不占据额外空间,状态切换会产生回流和重绘,而visibility:hidden的元素虽然隐藏了,但它们仍然占据着空间,它的状态切换只会引起页面重绘。... display:none ...可以参考博文: 页面重绘和回流以及优化 浏览器的渲染过程及优化 关于继承 display:none虽然不会被子元素继承,但是因为父元素都不在了,子元素自然也就不会显示了。...JS运用中的一些区别(学习JS后可以自行编写简单代码尝试) 事件绑定 display:none 的元素都已经不再页面存在了,因此肯定也无法触发它上面绑定的事件; visibility:hidden 元素上绑定的事件也无法触发

2.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CSS魔法堂:display:none与visibility:hidden的恩怨情仇

    深入display:none  我们都清楚当元素设置display:none后,界面上将不会显示该元素,并且该元素不占布局空间,但我们仍然可以通过JavaScript操作该元素。...但除了上面的知识点外,还有以下8个点我们需要注意的 1.原生默认display:none的元素 其实浏览器原生元素中有不少自带display:none的元素,如link,script,style,dialog... 3.父元素为display:none,子孙元素也难逃一劫 .hidden{ display: none; } .visible{ display: block; } *** START...;而父元素的display为none时,子元素的display必定为none,因此元素也没有机会位于事件捕获或冒泡阶段的路径路径上,因此display:none的元素无法响应事件。...对比清楚display:none和visibility:hidden  上面我们已经对display:none列出8点注意事项,那么我们仅需对照它逐一列出visibility的不就清晰可见了吗?

    1.7K31
    领券