CSS3--3種隱藏元素方法的區別
display: none
DOM
結構: 瀏覽器不會渲染display:none
的元素, 並且不占據頁面空間- 事件監聽: 無法對元素進行事件監聽
- 繼承: 不會被子元素繼承(子元素設置
display: block
不會顯示) - 改動: 改動屬性值會引起頁面的重排和重繪
- 過渡: 無法設置過渡效果
transition: display
無效
visibility: hidden
- 不會被渲染,但是會占據頁面空間
- 無法對元素設置事件監聽
- 可以繼承,子元素設置非
visibility:hidden
可以顯示 - 改動屬性只會引起頁面重排
transition:visibility
會立即顯示,hidden有過渡效果
opacity: 0
- 元素被隱藏, 會占據頁面空間
- 可以設置事件監聽
- 可以繼承,
子元素設置opacity可以顯示
- 不會重繪也不會重排
transition
:opacity
可以實現顯示隱藏的過渡效果opacity
會觸發硬件加速