有以下三種方式來實現元素的隱藏:
① display: none; 不占據空間,更改該屬性時會引起DOM樹結構變化、頁面重新布局——回流。
父元素被設置后已不在標准流中存在,自然不會被子元素繼承。
無占位元素,原有的元素綁定的事件監聽無效。
//元素顯示:display: block;
------------------------------------------------------------------------------------------------------------------------------
② visibility: hidden; 元素隱藏、仍然占據空間。更改該屬性時不會引起DOM樹結構變化、不會引起頁面重新布局,只會按照css代碼重新渲染——重繪。
可以被子元素繼承,可以通過設置visibility: visible;使得子元素顯示。
元素無效、原有的元素綁定的事件監聽無效。
//元素顯示:visibility: visible;
------------------------------------------------------------------------------------------------------------------------------
③ opacity: 0; 元素隱藏、占空間。更改該屬性時DOM樹結構沒有變化、不會引起頁面重新布局,只可能會重新渲染——重繪。
可以被子元素繼承,不可以通過設置opacity: 1;使得子元素顯示。
元素不顯示、原有的元素綁定的事件監聽有效。
//元素顯示:opacity: 1;