- 父元素为
display: none
,子孙元素页在劫难逃;父元素为visibility: hidden
,而子元素可以设置为visibility:visible
,并且生效 - 设置为
display:none
的元素和设置为visibility:hidden
的元素都无法获取焦点 - 设置为
display:none
的元素无法响应任何事件,无论是捕获、命中目标和冒泡阶段均不可以;设置为visibility:hidden
的元素可在冒泡阶段响应事件,因为设置为visibility:hidden
的元素的子元素可以为visibility:visible
,因此隐藏的元素有可能位于事件冒泡的路径上 - 设置为
display:none
的元素和设置为visibility:hidden
的元素都不妨碍form
表单的提交 - CSS中的
counter
会忽略display:none
的元素,不会忽略visibility:hidden
的元素 transition
对display
的变化不感冒,对visibility
的变化有效display
变化时将触发reflow
,且看display:block
表示元素位于BFC中,而display
则表示元素位于IFC中,也就是说display
的作用就是设置元素所属的布局上下文,若修改display
值则表示元素采用的布局方式已发生变化,必然触发reflow
;visibility
变化不会触发reflow
,由于visbility
设置为hidden
时,不会改变元素布局相关的属性,因此不会触发reflow
,只需要等待浏览器定时重绘界面
display:none与visibility:hidden比较
最新推荐文章于 2024-09-29 19:16:56 发布