前端進(jìn)階|第十三天 opacity: 0,visibility: hidden,display: none看不見元素看得見的屬性

首先先寫個(gè)代碼試下:

 <button class="btn1" style="display:none">按鈕display</button>
    <button class="btn2" style="visibility:hidden">按鈕visibility</button>
    <button class="btn3" style="opacity:0">按鈕opacity</button>     

三個(gè)按鈕,分別設(shè)置其屬性為display: none, opacity: 0,visibility: hidden,實(shí)現(xiàn)按鈕的隱藏。然后打開瀏覽器,審查元素,我們會(huì)發(fā)現(xiàn),display為none的元素,不占位置,其他兩個(gè)元素還是占位置的。


image.png
image.png
image.png

第二點(diǎn)是關(guān)于事件的處理,給每個(gè)按鈕都添加點(diǎn)擊事件。

   <button class="btn1" style="display:none" onclick="alert('display')">按鈕display</button>
    <button class="btn2" style="visibility:hidden"  onclick="alert('visibility')">按鈕visibility</button>
    <button class="btn3" style="opacity:0"  onclick="alert('opacity')">按鈕opacity</button>     

測(cè)試發(fā)現(xiàn),只有opacity的情況,按鈕的點(diǎn)擊事件是還可以觸發(fā)的。

第三點(diǎn),我們把元素的類別換一下,看一下他們對(duì)子類元素的影響。

<div class="btn1" style="display:none" onclick="alert('display')">按鈕display
        <span style="display: block">im display</span>
    </div>
    <div class="btn2" style="visibility:hidden" onclick="alert('visibility')">按鈕visibility
        <span style="visibility:visible;">im visibility</span>
    </div>
    <div class="btn3" style="opacity:0" onclick="alert('opacity')">按鈕opacity
        <span style="opacity: 100%;">im opacity</span>
    </div>
image.png

通過(guò)給子元素的設(shè)置相反的屬性,只有visibility的子元素可以顯示。

收集到大神的回復(fù)如下:

display: none;
DOM 結(jié)構(gòu):瀏覽器不會(huì)渲染 display 屬性為 none 的元素,不占據(jù)空間;
事件監(jiān)聽:無(wú)法進(jìn)行 DOM 事件監(jiān)聽;
性能:動(dòng)態(tài)改變此屬性時(shí)會(huì)引起重排,性能較差;
繼承:不會(huì)被子元素繼承,畢竟子類也不會(huì)被渲染;
transition:transition 不支持 display。
visibility: hidden;
DOM 結(jié)構(gòu):元素被隱藏,但是會(huì)被渲染不會(huì)消失,占據(jù)空間;
事件監(jiān)聽:無(wú)法進(jìn)行 DOM 事件監(jiān)聽;
性 能:動(dòng)態(tài)改變此屬性時(shí)會(huì)引起重繪,性能較高;
繼 承:會(huì)被子元素繼承,子元素可以通過(guò)設(shè)置 visibility: visible; 來(lái)取消隱藏;
transition:transition 不支持 display。
opacity: 0;
DOM 結(jié)構(gòu):透明度為 100%,元素隱藏,占據(jù)空間;
事件監(jiān)聽:可以進(jìn)行 DOM 事件監(jiān)聽;
性 能:提升為合成層,不會(huì)觸發(fā)重繪,性能較高;
繼 承:會(huì)被子元素繼承,且,子元素并不能通過(guò) opacity: 1 來(lái)取消隱藏;
transition:transition 不支持 opacity。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、display:none(1)、瀏覽器不會(huì)生成屬性為display: none;的元素。(2)、display...
    Maggie_77閱讀 3,031評(píng)論 0 4
  • 元素的顯示與隱藏(讓一個(gè)元素“看不見”的方式) 常規(guī):display: none;visibility: hidd...
    _空空閱讀 5,540評(píng)論 0 6
  • jQuery模塊 選擇器、DOM操作、事件、AJAX與動(dòng)畫 匿名函數(shù)自執(zhí)行 作用:解決命名空間與變量污染的問(wèn)題 總...
    青青玉立閱讀 997評(píng)論 0 0
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,429評(píng)論 0 11
  • 一、理論基礎(chǔ)知識(shí)部分 1.1、講講輸入完網(wǎng)址按下回車,到看到網(wǎng)頁(yè)這個(gè)過(guò)程中發(fā)生了什么 a. 域名解析 b. 發(fā)起T...
    我家媳婦蠢蠢噠閱讀 3,243評(píng)論 2 106

友情鏈接更多精彩內(nèi)容