<label id="2a06w"><tt id="2a06w"></tt></label><label id="2a06w"><tt id="2a06w"><em id="2a06w"></em></tt></label><menu id="2a06w"></menu>
  • <dfn id="2a06w"><var id="2a06w"><label id="2a06w"></label></var></dfn>
    <sup id="2a06w"><button id="2a06w"><em id="2a06w"></em></button></sup>
    <dfn id="2a06w"><var id="2a06w"></var></dfn>
    <dfn id="2a06w"></dfn>
  • <dfn id="2a06w"><code id="2a06w"><ins id="2a06w"></ins></code></dfn>
  • <small id="2a06w"><samp id="2a06w"></samp></small>
  • <dfn id="2a06w"><table id="2a06w"><center id="2a06w"></center></table></dfn>
    <label id="2a06w"><tt id="2a06w"><em id="2a06w"></em></tt></label>
    <strike id="2a06w"><form id="2a06w"></form></strike>
    <menu id="2a06w"><tt id="2a06w"></tt></menu>

    將想法與焦點和您一起共享

    CSS隱藏元素的幾個方法(display,visibility)的區(qū)別發(fā)布者:本站     時間:2020-05-16 09:05:26

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

    { display: none; /* 不占據(jù)空間,無法點擊 */ }

    { visibility: hidden; /* 占據(jù)空間,無法點擊 */ }

    { position: absolute; top: -999em; /* 不占據(jù)空間,無法點擊 */ }

    { position: relative; top: -999em; /* 占據(jù)空間,無法點擊 */ }

    { position: absolute; visibility: hidden; /* 不占據(jù)空間,無法點擊 */ }

    { height: 0; overflow: hidden; /* 不占據(jù)空間,無法點擊 */ }

    { opacity: 0; filter:Alpha(opacity=0); /* 占據(jù)空間,可以點擊 */ }

    { position: absolute; opacity: 0; filter:Alpha(opacity=0); /* 不占據(jù)空間,可以點擊 */ }

    {

    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ù)空間。都無法點擊 */

    }

    {

    position: absolute;

    zoom: 0.001;

    -moz-transform: scale(0);

    -webkit-transform: scale(0);

    -o-transform: scale(0);

    transform: scale(0);

    /* 不占據(jù)空間,無法點擊 */

    }

    display:none和visibility:hidden的區(qū)別

    不同有三點:

    空間占據(jù)

    回流與渲染

    株連性

    第一點,想必都知道;

    第二點,display:none隱藏產(chǎn)生reflow和repaint(回流與重繪),而visibility:hidden沒有這個影響前端性能的問題;

    第三點估計是不少同行不知道的,就是“株連性”方面的差異。

    所謂“株連性”,就是如果祖先元素遭遇某禍害,則其子子孫孫無一例外也要遭殃。我頓時想起了《地球反擊戰(zhàn)》或是《木乃伊之蝎子王》,一旦把母體搞跛了,小輩啊、下屬啊什么的都瞬間煙消云散。display:none就是“株連性”明顯的聲明:一旦父節(jié)點元素應用了display:none,父節(jié)點及其子孫節(jié)點元素全部不可見,而且無論其子孫元素如何不屈地掙扎都無濟于事。

    在實際的web應用中,我們要經(jīng)常實現(xiàn)一些顯示隱藏的功能,由于display:none本身特性以及jQuery潛在的驅(qū)動,使得我們對display:none這種隱藏特性相當熟知。因此,久而久之會形成比較牢固的情感化認識,并無法避免地將這種認識遷移到其他類似表現(xiàn)屬性(eg. visibility)的認識上,再加上一些常規(guī)經(jīng)驗……

    舉例來說吧,通常情況下,我們給一個父元素應用visibility:hidden,則其子孫后代也都會全部不可見。于是,我們就會有類似的認識遷移:應用了visibility:hidden聲明下的子孫元素如何不屈地掙扎都擺脫不了不可見被抹殺的命運。而實際上卻存在隱藏“失效”的情況。

    何時隱藏“失效”?很簡單,如果子孫元素應用了visibility:visible,那么這個子孫元素又會劉謙般地顯現(xiàn)出來。

    對比總結:

    display:none是個相當慘無人道的聲明,子孫后代全部搞死(株連性),而且連塊安葬的地方都不留(不留空間),導致全體民眾嘩然(渲染與回流)。

    visibility:hidden則具有人道主義關懷,雖然不得已搞死子孫,但是子孫可以通過一定手段避免(偽株連性),而且死后全尸,墓地俱全(占據(jù)空間),國內(nèi)民眾比較淡然(無渲染與回流)。

    height:0和overflow:hidden的組合

    overflow:hidden用中文理解就是“溢出隱藏”,也就是盒子以外的內(nèi)容都咔嚓掉不可見的。加上height:0,只要是一般的非inline水平元素,則元素內(nèi)部所有子孫都應該是不可見的。

    height:0和overflow:hidden組合隱藏“失效”的條件如下:祖先元素沒有position:relative/absolute/fixed聲明,同時內(nèi)部子元素應用了position:absolute/fixed聲明。



    選擇我們,優(yōu)質(zhì)服務,不容錯過
    1. 優(yōu)秀的網(wǎng)絡資源,強大的網(wǎng)站優(yōu)化技術,穩(wěn)定的網(wǎng)站和速度保證
    2. 15年上海網(wǎng)站建設經(jīng)驗,優(yōu)秀的技術和設計水平,更放心
    3. 全程省心服務,不必擔心自己不懂網(wǎng)絡,更省心。
    ------------------------------------------------------------
    24小時聯(lián)系電話:021-58370032
    99人妻中文字幕视频在,亚洲无码视频在线免费看,久久国产乱子伦免费精品,日本中文字幕色视频网站
    <label id="2a06w"><tt id="2a06w"></tt></label><label id="2a06w"><tt id="2a06w"><em id="2a06w"></em></tt></label><menu id="2a06w"></menu>
  • <dfn id="2a06w"><var id="2a06w"><label id="2a06w"></label></var></dfn>
    <sup id="2a06w"><button id="2a06w"><em id="2a06w"></em></button></sup>
    <dfn id="2a06w"><var id="2a06w"></var></dfn>
    <dfn id="2a06w"></dfn>
  • <dfn id="2a06w"><code id="2a06w"><ins id="2a06w"></ins></code></dfn>
  • <small id="2a06w"><samp id="2a06w"></samp></small>
  • <dfn id="2a06w"><table id="2a06w"><center id="2a06w"></center></table></dfn>
    <label id="2a06w"><tt id="2a06w"><em id="2a06w"></em></tt></label>
    <strike id="2a06w"><form id="2a06w"></form></strike>
    <menu id="2a06w"><tt id="2a06w"></tt></menu>