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可以延時顯示與隱藏。
學習總結:
學習到這裡,產生疑問:重排和重繪是什麼?
接下來我會繼續去學習重排和重繪。
相關文章
- CSS3 display:flex和display:box有什麼區別?CSSS3Flex
- display:flex和display:box的區別Flex
- CSS display:none和visible:hidden區別CSSNone
- css中visibility與display的區別CSS
- css之displayCSS
- display:flex與display:box 區別Flex
- display:none和visibility:hidden的區別None
- display:none 和visible:false 的區別(轉)NoneFalse
- display:inline-flex 和 display:flex有什麼區別inlineFlex
- css link和@import的區別CSSImport
- visibility和display設定元素的顯示和隱藏的區別
- CSS偽類的一些用法以及visibility:hidden和display:none的一些區別薦CSSNone
- CSS中 link 和@import的區別CSSImport
- jQuery中css()和attr()方法的區別jQueryCSS
- CSS position fixed和absolute區別CSS
- display: none與visibility: hidden的區別None
- visibility:hidden與display:none的區別None
- css中的display屬性CSS
- css display 屬性CSS
- css display 總結CSS
- 敏捷和 Scrum 之間的區別敏捷Scrum
- Java之for(;;)和while(true)的區別JavaWhile
- Statement和PreparedStatement之間的區別
- Python之“==”和“is”區別Python
- css26 CSS Layout - The display PropertyCSS
- display:flex與inline-flex 區別Flexinline
- CSS 中 stopPropagation, preventDefault 和 return false 的區別CSSFalse
- CSS中 screenX clientX pageX 的概念和區別CSSclient
- 自定義彈出層.css 和 .animate的區別CSS
- 前端文摘:最全的CSS2.1和CSS3+的區別一覽前端CSSS3
- css知多少(10)——displayCSS
- CSS display: flex佈局CSSFlex
- MySQL之Where和Having的區別MySql
- @Bean和@Component之間的區別?Bean
- MVC,MVP和MVVM之間的區別MVCMVPMVVM
- Java之.class和.getClass()的區別Java
- reboot和init 6之間的區別boot
- 1.CSS和iStack的區別和應用場景CSS