溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

css中display:none和visibility:hidden怎么用

發(fā)布時(shí)間:2021-10-12 15:55:31 來源:億速云 閱讀:99 作者:小新 欄目:移動開發(fā)

這篇文章主要介紹css中display:none和visibility:hidden怎么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

一、CSS元素隱藏
在CSS中,讓元素隱藏(指屏幕范圍內(nèi)肉眼不可見)的方法很多,有的占據(jù)空間,有的不占據(jù)空間;有的可以響應(yīng)點(diǎn)擊,有的不能響應(yīng)點(diǎn)擊。一個(gè)一個(gè)看。

代碼如下:


{ display: none; /* 不占據(jù)空間,無法點(diǎn)擊 */ }
/********************************************************************************/
{ visibility: hidden; /* 占據(jù)空間,無法點(diǎn)擊 */ }
/********************************************************************************/
{ position: absolute; top: -999em; /* 不占據(jù)空間,無法點(diǎn)擊 */ }
/********************************************************************************/
{ position: relative; top: -999em; /* 占據(jù)空間,無法點(diǎn)擊 */ }
/********************************************************************************/
{ position: absolute; visibility: hidden; /* 不占據(jù)空間,無法點(diǎn)擊 */ }
/********************************************************************************/
{ height: 0; overflow: hidden; /* 不占據(jù)空間,無法點(diǎn)擊 */ }
/********************************************************************************/
{ opacity: 0; filter:Alpha(opacity=0); /* 占據(jù)空間,可以點(diǎn)擊 */ }
/********************************************************************************/
{ position: absolute; opacity: 0; filter:Alpha(opacity=0); /* 不占據(jù)空間,可以點(diǎn)擊 */ }
/********************************************************************************/
{
zoom: 0.001;
-moz-transform: scale(0);
-webkit-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
/* IE6/IE7/IE9不占據(jù)空間,IE8/FireFox/Chrome/Opera占據(jù)空間。都無法點(diǎn)擊 */
}
/********************************************************************************/
{
position: absolute;
zoom: 0.001;
-moz-transform: scale(0);
-webkit-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
/* 不占據(jù)空間,無法點(diǎn)擊 */
}


二、display:none和visibility:hidden
目前,我所知道的不同有三點(diǎn)(歡迎補(bǔ)充):
1.空間占據(jù)
2.回流與渲染
3.株連性
display:none隱藏產(chǎn)生reflow和repaint(回流與重繪),而visibility:hidden沒有這個(gè)影響前端性能的問題;第三點(diǎn)估計(jì)是不少同行不知道的,就是“株連性”方面的差異。
所謂“株連性”,就是如果祖先元素遭遇某禍害,則其子子孫孫無一例外也要遭殃。display:none就是“株連性”明顯的聲明:一旦父節(jié)點(diǎn)元素應(yīng)用了display:none,父節(jié)點(diǎn)及其子孫節(jié)點(diǎn)元素全部不可見,而且無論其子孫元素如何不屈地掙扎都無濟(jì)于事。
在實(shí)際的web應(yīng)用中,我們要經(jīng)常實(shí)現(xiàn)一些顯示隱藏的功能,由于display:none本身特性以及jQuery潛在的驅(qū)動,使得我們對display:none這種隱藏特性相當(dāng)熟知。因此,久而久之會形成比較牢固的情感化認(rèn)識,并無法避免地將這種認(rèn)識遷移到其他類似表現(xiàn)屬性(eg. visibility)的認(rèn)識上,再加上一些常規(guī)經(jīng)驗(yàn)……
舉例來說吧,通常情況下,我們給一個(gè)父元素應(yīng)用visibility:hidden,則其子孫后代也都會全部不可見。于是,我們就會有類似的認(rèn)識遷移:應(yīng)用了visibility:hidden聲明下的子孫元素如何不屈地掙扎都擺脫不了不可見被抹殺的命運(yùn)。而實(shí)際上卻存在隱藏“失效”的情況。
何時(shí)隱藏“失效”?很簡單,如果子孫元素應(yīng)用了visibility:visible,那么這個(gè)子孫元素又會劉謙般地顯現(xiàn)出來。
css中display:none和visibility:hidden怎么用 
visibility就是這樣一個(gè)funny的屬性。
對比總結(jié)
display:none是個(gè)相當(dāng)慘無人道的聲明,子孫后代全部搞死(株連性),而且連塊安葬的地方都不留(不留空間),導(dǎo)致全體民眾嘩然(渲染與回流)。
visibility:hidden則具有人道主義關(guān)懷,雖然不得已搞死子孫,但是子孫可以通過一定手段避免(偽株連性),而且死后全尸,墓地俱全(占據(jù)空間),國內(nèi)民眾比較淡然(無渲染與回流)。

以上是“css中display:none和visibility:hidden怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI