display: none 和 visibility: hidden的区别

263 阅读1分钟

元素隐藏和显示最常用的为 display:none 和 visibility: hiiden

display: none设置该属性后, 该元素下的元素都会隐藏, 占据的空间会消失

visibility: hidden 设置该属性后,元素虽然不可见了,但是依然占据空间的位置

区别:

  1. visibility具有继承性, 其子元素也会继承此属性,若设置visibility:visible,则子元素会显示
  2. visibility不会影响计数器的计算,虽然隐藏了,但是计数器依然继续运行着
  3. 在css3的transition可以支持viibility属性, 但是不支持display,因为transition可以延迟执行,因此配合visibility使用纯css实现hover延时显示效果可以提高用户体验
  4. display:none会引起回流(重排)和重绘,visibility:hidden会引起重绘