標籤:

display:none和visibility:hidden的區別

display:none和visibility:hidden的區別

來自專欄 前端知識筆記

在使用CSS隱藏一些元素時,我們經常用到 display:none 和 visibility:hidden。兩者差別如下:

1. 是否佔據空間

display:none,該元素不佔據任何空間,在文檔渲染時,該元素如同不存在(但依然存在文檔對象模型樹中)。

visibility:hidden,該元素空間依舊存在。

即一個(display:none)不會在渲染樹中出現,一個(visibility :hidden)會。

2. 是否渲染

display:none,會觸發reflow(迴流),進行渲染。

visibility:hidden,只會觸發repaint(重繪),因為沒有發現位置變化,不進行渲染。

3. 是否是繼承屬性

display:none,display不是繼承屬性,元素及其子元素都會消失。

visibility:hidden,visibility是繼承屬性,若子元素使用了visibility:visible,則不繼承,這個子孫元素又會顯現出來。

4. 讀屏器是否讀取

讀屏器不會讀取display:none的元素內容,而會讀取visibility:hidden的元素內容。

5. 參考鏈接

  • developer.mozilla.org/z
  • developer.mozilla.org/z
  • zhangxinxu.com/wordpres
  • snailsky.me/2014/08/18/
  • jianshu.com/p/da8e9fba4
  • nowcoder.com/questionTe

推薦閱讀:

css垂直居中整理
三角形的 N 種畫法與瀏覽器的開放世界
擁抱 prettier
怎樣設計以用戶為中心的WEB表單?

TAG:CSS | 前端開發 |