-
是否在渲染树中:
设置display: none;会让元素从渲染树中消失,渲染时不会占据任何空间。
设置visibility: hidden;不会让元素从渲染树中消失,渲染时还会占据相应的空间,只是内容不可见。 -
是否是继承属性:
display: none;是非继承属性,子孙节点会随着父节点从渲染树中消失,通过修改子孙节点的display属性也无法显示子孙节点。
visibility: hidden;是继承属性,子孙节点消失是由于继承了父节点的visibility: hidden;,通过设置visibility: visible;可以让子孙节点重新显示。 -
修改常规文档流中元素的display通常会造成文档的重排,但是修改元素的visibility只会造成本元素的重绘。
-
如果使用读屏器,设置为display: none;的内容不会被读取,设置为visibility: hidden;的内容会被读取。
拓展:
读屏软件,是一种可以帮助盲人上网的工具。