CSS之Display、Visbility和Opactity的區別
學習目標:
學過CSS的盆友(本人)都知道隱藏元素有三種方式:
- display
- visibility
- opacity
那麼這三種方式的區別是什麼呢??我就在這裡來悄咪咪學習一下。
學習內容:
話不多說,直接開始:
1. display:none;
- DOM結構:瀏覽器不會渲染display屬性為none的元素,不佔據空間,意思就是頁面上沒有它的一席之地,你在開發者模式中選不中那個元素。
- 事件監聽:無法進行DOM事件監聽。
- 效能:動態改變此屬性時會引起重排,效能較差。
- 繼承:不會被子元素繼承,因為子元素也不被渲染。
- transtion過渡不支援display。
2. visibility:hidden;
- DOM結構:元素被隱藏了,瀏覽器會渲染visibility屬性為hidden的元素,佔據空間,意思就是頁面上有它的空間,在開發者模式中能選中那個元素。
- 事件監聽:無法進行DOM事件監聽。
- 效能:動態改變此屬性時會引起重繪,效能較高。
- 繼承:會被子元素繼承,子元素通過設定visibility:visible;來顯示自身,使子元素取消自身隱藏。
- transtion:visibility會立即顯示,隱藏時會延時。
3. opacity:0;
- DOM結構:opacity屬性值為0時透明度為100%,元素隱藏,佔據空間,opacity值為0到1,為1時顯示元素。
- 事件監聽:可以進行DOM事件監聽。
- 效能:提升為合成層,不會引發重繪,效能較高。
- 繼承:會被子元素繼承,子元素不能通過設定opacity:1;來取消隱藏。。
- transtion:opacity可以延時顯示與隱藏。
學習總結:
學習到這裡,產生疑問:重排和重繪是什麼?
接下來我會繼續去學習重排和重繪。
相關文章
- CSS display:none和visible:hidden區別CSSNone
- css之displayCSS
- display:none和visibility:hidden的區別None
- display:inline-flex 和 display:flex有什麼區別inlineFlex
- display:flex與display:box 區別Flex
- 說說display:none和visibility:hidden的區別None
- display: none與visibility: hidden的區別None
- css link和@import的區別CSSImport
- CSS中 link 和@import的區別CSSImport
- jQuery中css()和attr()方法的區別jQueryCSS
- display:flex與inline-flex 區別Flexinline
- css display 屬性CSS
- CSS之使用display:inline-block來佈局CSSinlineBloC
- CSS中 screenX clientX pageX 的概念和區別CSSclient
- CSS 中 stopPropagation, preventDefault 和 return false 的區別CSSFalse
- CSS3中RGBA和opacity的區別CSSS3
- Python之“==”和“is”區別Python
- css26 CSS Layout - The display PropertyCSS
- link和@import匯入css檔案的區別ImportCSS
- CSS display: flex佈局CSSFlex
- Java之InetSocketAddress和SocketAddress的區別Java
- Java之.class和.getClass()的區別Java
- @Bean和@Component之間的區別?Bean
- Java之for(;;)和while(true)的區別JavaWhile
- querySelector和getElementById之間的區別
- MySQL之Where和Having的區別MySql
- 敏捷和 Scrum 之間的區別敏捷Scrum
- 1.CSS和iStack的區別和應用場景CSS
- CSS3學習之background-origin和background-clip區別CSSS3
- [CSS] 偽元素和偽類,::before 和 :before 區別CSS
- CSS3中translate、transform、translation和animation的區別CSSS3ORM
- css的height:100%和height:inherit有什麼區別?CSS
- 淺析HTML、CSS、JavaScript之間的聯絡與區別!HTMLCSSJavaScript
- MVC,MVP和MVVM之間的區別MVCMVPMVVM
- return,continue和break之間的區別
- css32 CSS Layout - display: inline-blockCSSS3inlineBloC
- Android之Intent的setClass和setClassName的區別AndroidIntent
- CSS display顯示分別為block、 inline、 inline-block的三種元素CSSBloCinline