精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

CSS魔法堂:display:none與visibility:hidden的恩怨情仇

開發(fā) 前端
還記得面試時(shí)被問起"請(qǐng)說說display:none和visibility:hidden的區(qū)別"嗎?是不是回答完display:none不占用原來的位置,而visibility:hidden保留原來的位置后,面試官就會(huì)心一笑呢?其實(shí)不止那么簡(jiǎn)單呢!本文我們將一起深究它倆的恩怨情仇,下次面試時(shí)我們可以回答得更出彩!

 [[245961]]

前言

還記得面試時(shí)被問起"請(qǐng)說說display:none和visibility:hidden的區(qū)別"嗎?是不是回答完display:none不占用原來的位置,而visibility:hidden保留原來的位置后,面試官就會(huì)心一笑呢?其實(shí)不止那么簡(jiǎn)單呢!本文我們將一起深究它倆的恩怨情仇,下次面試時(shí)我們可以回答得更出彩!

深入display:none

我們都清楚當(dāng)元素設(shè)置display:none后,界面上將不會(huì)顯示該元素,并且該元素不占布局空間,但我們?nèi)匀豢梢酝ㄟ^JavaScript操作該元素。但為什么會(huì)這樣呢?

這個(gè)涉及到瀏覽器的渲染原理:瀏覽器會(huì)解析HTML標(biāo)簽生成DOM Tree,解析CSS生成CSSOM,然后將DOM Tree和CSSOM合成生成Render Tree,元素在Render Tree中對(duì)應(yīng)0或多個(gè)盒子,然后瀏覽器以盒子模型的信息布局和渲染界面。而設(shè)置為display:none的元素則在Render Tree中沒有生成對(duì)應(yīng)的盒子模型,因此后續(xù)的布局、渲染工作自然沒它什么事了,至于DOM操作還是可以的。

但除了上面的知識(shí)點(diǎn)外,還有以下8個(gè)點(diǎn)我們需要注意的

1.原生默認(rèn)display:none的元素

其實(shí)瀏覽器原生元素中有不少自帶display:none的元素,如link,script,style,dialog,input[type=hidden]等

2.HTML5中新增hidden布爾屬性,讓開發(fā)者自定義元素的隱藏性 

  1. /* 兼容原生不支持hidden屬性的瀏覽器  */  
  2. [hidden]{  
  3.   display: none;  
  4.  
  5. <span hidden>Hide and Seek: You can't see me!</span> 

3.父元素為display:none,子孫元素也難逃一劫 

  1. .hidden{  
  2.   display: none;  
  3.  
  4. .visible{  
  5.   display: block;  
  6.  
  7. *** START ***  
  8. <div class="hidden">  
  9.   I'm parent!  
  10.   <div class="visible"> I'm son! </div>  
  11. </div>  
  12. *** END *** 

瀏覽器直接顯示為 

  1. *** START ***  
  2. *** END *** 

4.無法獲取焦點(diǎn)

本來無一盒,何處惹焦點(diǎn)呢^_^即使通過tab鍵也是沒辦法的 

  1. <!-- 真心不會(huì)獲得焦點(diǎn) -->  
  2. <input type="hidden">  
  3. <div tabindex="1" style="display:none">hidden</div> 

5.無法響應(yīng)任何事件,無論是捕獲、***目標(biāo)和冒泡階段均不可以

由于display:none的元素根本不會(huì)在界面上渲染,就是連1個(gè)像素的都不占,因此自然無法通過鼠標(biāo)點(diǎn)擊***,而元素也無法獲取焦點(diǎn),那么也不能成為鍵盤事件的***目標(biāo);而父元素的display為none時(shí),子元素的display必定為none,因此元素也沒有機(jī)會(huì)位于事件捕獲或冒泡階段的路徑路徑上,因此display:none的元素?zé)o法響應(yīng)事件。

6.不耽誤form表單提交數(shù)據(jù)

雖然我們無法看到display:none的元素,但當(dāng)表單提交時(shí)依然會(huì)將隱藏的input元素的值提交上去。 

  1. <form>  
  2.   <input type="hidden" name="id">  
  3.   <input type="text" name="gguid" style="display:none">  
  4. </form> 

7.CSS中的counter會(huì)忽略display:none的元素 

  1. .start{  
  2.   counter-reset: son 0;  
  3.  
  4. .son{  
  5.   counter-increment: son 1;  
  6.  
  7. .son::before{  
  8.   content: counter(son) ". ";  
  9.  
  10. <div class="start">  
  11.   <div class="son">son1</div>  
  12.   <div class="son" style="display:none">son2</div>  
  13.   <div class="son">son3</div>  
  14. </div> 

結(jié)果就是: 

  1. 1. son1  
  2. 2. son3 

8.Transition對(duì)display的變化不感冒

詳情請(qǐng)參考CSS魔法堂:Transition就這么好玩

9.display變化時(shí)將觸發(fā)reflow

撇開display:none,我們看看display:block表示元素位于BFC中,而display:inline則表示元素位于IFC中,也就是說display的用于就是設(shè)置元素所屬的布局上下文,若修改display值則表示元素采用的布局方式已發(fā)生變化,不觸發(fā)reflow才奇怪呢!

深入visibility

 visibility有兩個(gè)不同的作用

  1.  用于隱藏表格的行和列
  2.  用于在不觸發(fā)布局的情況下隱藏元素

4個(gè)有效值

1.visible

沒什么好說的,就是在界面上顯示。

2.hidden

讓元素在見面上不可視,但保留元素原來占有的位置。

3.collapse

用于表格子元素(如tr,tbody,col,colgroup)時(shí)效果和display:none一樣,用于其他元素上時(shí)則效果與visibility:hidden一樣。不過由于各瀏覽器實(shí)現(xiàn)效果均有出入,因此一般不會(huì)使用這個(gè)值。

4.inherit

繼承父元素的visibility值。

對(duì)比清楚display:none和visibility:hidden

上面我們已經(jīng)對(duì)display:none列出8點(diǎn)注意事項(xiàng),那么我們僅需對(duì)照它逐一列出visibility的不就清晰可見了嗎?

1.父元素為visibility:hidden,而子元素可以設(shè)置為visibility:visible并且生效 

  1. div{  
  2.   border: solid 2px blue;  
  3.  
  4. .visible{  
  5.   visibility: visible;  
  6.  
  7. .hidden{  
  8.   visibility: hidden;  
  9.  
  10. <div class="hidden">  
  11.   I'm Parent.  
  12.   <div class="visible">  
  13.     I'm Son.  
  14.   </div>  
  15. </div> 

結(jié)果:

2.和display:none一樣無法獲得焦點(diǎn)

3.可在冒泡階段響應(yīng)事件

由于設(shè)置為visibility:hidden的元素其子元素可以為visibility:visible,因此隱藏的元素有可能位于事件冒泡的路徑上因此下面代碼中,將鼠標(biāo)移至.visible時(shí),.hidden會(huì)響應(yīng)hover事件顯示。 

  1. div{  
  2.   border: solid 2px blue;  
  3.  
  4. .visible{  
  5.   visibility: visible;  
  6.  
  7. .hidden{  
  8.   visibility: hidden;  
  9.  
  10. .hidden:hover{  
  11.   visibility: visible;  
  12.  
  13. <div class="hidden">  
  14.   I'm Parent.  
  15.   <div class="visible">  
  16.     I'm Son.  
  17.   </div>  
  18. </div> 

4.和display:none一樣不妨礙form表單的提交

5.CSS中的counter不會(huì)忽略

6.Transition對(duì)visibility的變化有效

7.visibility變化不會(huì)觸發(fā)reflow

由于從visible設(shè)置為hidden時(shí),不會(huì)改變?cè)夭季窒嚓P(guān)的屬性,因此不會(huì)觸發(fā)reflow,只是靜靜地和其他渲染變化一起等待瀏覽器定時(shí)重繪界面。

總結(jié)

現(xiàn)在我們對(duì)display:none和visibility:hidden應(yīng)該有更深入的了解了,下次面試時(shí)我們的答案會(huì)更豐富出彩哦!

尊重原創(chuàng),轉(zhuǎn)載請(qǐng)注意來自:https://www.cnblogs.com/fsjoh... 肥仔John^_^

責(zé)任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2010-09-16 09:58:44

CSS display

2010-09-07 16:21:37

CSSDisplayVisibility

2011-05-30 13:29:06

2010-09-16 10:29:47

DisplayVisibilityCSS

2019-01-29 09:18:00

開源代碼GitHub

2010-09-14 13:05:10

VisibilityDisplayCSS DIV

2020-03-11 10:26:51

開發(fā)者技能工具

2021-04-12 06:08:16

HiveSpark大數(shù)據(jù)

2010-09-16 09:52:49

CSS display

2024-03-15 08:27:20

2014-10-20 10:23:37

2015-04-27 09:12:04

JS魔法堂IE內(nèi)存泄露

2010-09-14 13:11:43

DIVdisplayvisibility

2023-11-27 00:48:46

displayvisibility

2010-09-06 16:00:41

CSSborder

2010-09-08 14:46:36

CSSborder

2020-11-24 10:13:20

測(cè)試開發(fā)管理

2010-09-10 15:16:51

CSSdisplay

2016-10-19 15:15:26

2010-08-25 14:26:09

CSSdisplay
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

色婷婷激情视频| 亚洲精品一区二区三区四区五区| 精品人妻在线播放| 三级小说欧洲区亚洲区| 色呦呦网站一区| 9999在线观看| 天堂中文在线看| 老鸭窝亚洲一区二区三区| 最新的欧美黄色| 韩国三级在线看| 在线观看特色大片免费视频| 国产精品久久久久精k8| 成人av片网址| 国产精品高清无码| 狠狠久久婷婷| 在线看国产精品| 香蕉视频在线观看黄| 欧美一区国产| 亚洲免费观看高清在线观看| 欧美精品一区二区视频| av一级黄色片| 日韩国产精品91| 国内精品久久影院| sm捆绑调教视频| 台湾色综合娱乐中文网| 欧美一区二区日韩一区二区| 妺妺窝人体色www在线小说| 麻豆av在线导航| 2023国产一二三区日本精品2022| 91影视免费在线观看| 黄色片中文字幕| 国产精品av一区二区| 日韩精品在线视频| 免费看91视频| 曰本一区二区| 在线观看亚洲一区| 成人一对一视频| 成年视频在线观看| 国产精品国产三级国产有无不卡 | 三级黄色在线视频| 欧美96在线丨欧| 色噜噜国产精品视频一区二区| 成人手机在线免费视频| 日韩精品免费视频一区二区三区| 欧美日韩在线播放一区| www.国产区| 国产99在线| 亚洲影视在线播放| 色哟哟免费网站| 午夜在线小视频| 国产女人aaa级久久久级| 欧美日韩在线播放一区二区| 污视频软件在线观看| 成人性生交大片免费看中文| 99蜜桃在线观看免费视频网站| 亚洲一区二区视频在线播放| 日韩高清不卡一区| 国产成人精品电影久久久| 色屁屁影院www国产高清麻豆| 亚洲看片一区| 97成人精品区在线播放| 毛片毛片女人毛片毛片| 免费日韩一区二区| 日韩av123| 91丨九色丨海角社区| 日欧美一区二区| 国产精品91视频| 无码一区二区三区| 秋霞影院一区二区| 成人免费看黄网站| 国产亲伦免费视频播放| 国产福利一区二区三区在线视频| 99国产在线视频| 十八禁一区二区三区| 9色porny自拍视频一区二区| 久久精品日产第一区二区三区| 五月婷婷久久久| 久久久久久久久97黄色工厂| 四虎永久国产精品| 国产色在线观看| 亚洲影视资源网| 久久精品99国产| 欧美黄色成人| 欧美大片国产精品| 水蜜桃av无码| 国产一区不卡| 久久综合伊人77777| 日韩精品视频免费播放| 日本欧美在线观看| 91九色偷拍| 午夜av免费在线观看| 久久精品男人的天堂| dy888午夜| 中文字幕在线视频网站| 欧美日韩dvd在线观看| 爱情岛论坛亚洲自拍| 欧美调教视频| 精品国产区一区二区三区在线观看| 麻豆精品一区二区三区视频| 先锋亚洲精品| 2014国产精品| 国产一级片在线播放| 亚洲精品国产视频| 欧美日韩在线不卡视频| 91麻豆精品| 亚洲毛片在线免费观看| 综合五月激情网| 美女诱惑一区| 国产成人精品免费视频大全最热 | 亚洲国产欧美国产第一区| 亚洲精品小视频| 一区视频免费观看| 日韩av一二三| 精品久久久久久乱码天堂| 欧美极品视频| 色综合欧美在线视频区| 制服.丝袜.亚洲.中文.综合懂| 国产尤物久久久| 欧美精品激情在线| 国产精品久久777777换脸| 久久亚洲综合色一区二区三区| 少妇久久久久久被弄到高潮| 99欧美精品| 亚洲精品中文字幕女同| 久久丫精品久久丫| 国产精品一区二区在线看| 日本电影一区二区三区| 超碰激情在线| 日韩一二三区不卡| 欧日韩不卡视频| 久久香蕉精品| 蜜桃91精品入口| 精品极品在线| 精品sm捆绑视频| 欧美成人三级视频| 韩国三级电影一区二区| 亚洲一区二区四区| 蜜桃成人精品| 亚洲欧美在线播放| 亚洲国产精品成人无久久精品| 国产精品一二三区在线| 在线观看成人一级片| 日本肉肉一区 | 秋霞成人影院| 欧美日韩一级二级| 女人黄色一级片| 首页综合国产亚洲丝袜| 欧美精品123| 小早川怜子影音先锋在线观看| 亚洲精品福利资源站| 国产主播在线播放| 成人一区在线看| 少妇人妻大乳在线视频| 亚洲一区二区三区中文字幕在线观看 | 欧美亚洲成人xxx| 图片区 小说区 区 亚洲五月| 在线观看午夜av| 蜜桃av噜噜一区| 日韩色妇久久av| 国产成人免费9x9x人网站视频 | 天天亚洲美女在线视频| 国内精品久久99人妻无码| 一区二区国产在线观看| 国内一区二区三区在线视频| 一个人看的www视频在线免费观看 一个人www视频在线免费观看 | 久久视频这里有精品| 美国成人xxx| 欧美在线亚洲在线| 第一页在线观看| 欧美日韩在线播放三区四区| 国产一二三四视频| 国产成人午夜电影网| 99热久久这里只有精品| 日韩激情毛片| 国产精品电影在线观看| 乱人伦中文视频在线| 日韩欧美国产1| 91精品国产乱码久久久张津瑜| 久久久久久日产精品| 特级丰满少妇一级| 欧美精品1区| 久久www免费人成精品| 666av成人影院在线观看| 国产一区二区三区在线| 国产视频一区二区三| 亚洲福中文字幕伊人影院| 素人fc2av清纯18岁| 久草热8精品视频在线观看| 800av在线免费观看| 亚洲欧洲色图| 亚洲影院高清在线| 高清毛片在线观看| 精品国产一区二区三区久久久狼| 韩国av免费在线观看| 欧美一区二区黄片| 亚洲国产视频网站| 精品无码人妻一区| 精品一区二区在线免费观看| 日本欧美黄色片| 欧美独立站高清久久| 极品校花啪啪激情久久| 深夜日韩欧美| 欧美怡红院视频一区二区三区| 日本三级在线视频| 亚洲第一中文字幕| 国产乱叫456在线| 欧美午夜片在线免费观看| 四虎永久免费地址| 91啦中文在线观看| 国产男女无遮挡猛进猛出| 久久一二三四| 黄色污污在线观看| 精品国产中文字幕第一页| 成人欧美视频在线| 日本午夜免费一区二区| 日韩免费中文字幕| 欧美人动性xxxxz0oz| 色吧影院999| 国产精品麻豆一区二区三区 | 欧美好骚综合网| 久草精品电影| 国产成人一二片| 91久久精品视频| jizzyou欧美16| 热久久美女精品天天吊色| 午夜伦理在线视频| 久久精品视频网站| 成人在线观看一区| 日韩av中文字幕在线播放| 成人午夜视频一区二区播放| 91麻豆精品国产自产在线 | 久久青草久久| 国产资源在线视频| 尹人成人综合网| 欧美黄网在线观看| 欧美日韩精品| 91黄色在线看| 欧美日韩国产在线一区| 毛片在线视频观看| 一区二区三区午夜视频| 在线观看欧美激情| 首页国产精品| 亚洲最新免费视频| 大色综合视频网站在线播放| 手机在线观看国产精品| 成人综合一区| 一区二区三区四区国产| 欧美激情成人| 黄色一级视频播放| 综合久久综合| 男女日批视频在线观看| 在线视频观看日韩| 精品久久一二三| 国产农村妇女精品一区二区| 一区二区传媒有限公司| 亚洲自拍另类| av片中文字幕| 日本大胆欧美人术艺术动态 | 成人精品在线看| 欧美香蕉大胸在线视频观看| 狠狠人妻久久久久久综合| 狠狠色狠狠色综合日日五| 天堂а√在线中文在线新版| 91黄视频在线| 中文字幕在线观看第二页| 制服丝袜国产精品| 成人午夜精品福利免费| 亚洲欧洲成视频免费观看| 91在线导航| 欧美成人一二三| 182在线播放| 国产精品国模在线| 粉嫩av国产一区二区三区| 99re国产视频| 日韩三级视频| 亚洲国产日韩综合一区| 久久久久久久久久久妇女| 国产精品久久国产| 另类天堂av| 女人高潮一级片| 成人久久久精品乱码一区二区三区 | 精品三区视频| 亚洲综合精品伊人久久| 啪啪激情综合网| 亚洲国产一区二区在线| 欧美久久久久| 免费国产成人av| 国产精品亚洲专一区二区三区| 欧美成人三级伦在线观看| 国产精品美女久久久久久久久久久| 欧美日韩免费做爰视频| 色综合天天综合网天天看片| 国产一区二区三区在线观看| 亚洲成人亚洲激情| av在线播放网站| 久久久久久尹人网香蕉| 久久久久黄色| 国语精品中文字幕| 久久久久久美女精品| 国产 福利 在线| 国产高清不卡一区| 69xxx免费| 五月天欧美精品| 国产乱子伦精品无码码专区| 亚洲欧洲激情在线| av日韩国产| 91久久久久久久| 久久99国产精品视频| 国产精品一色哟哟| 激情六月婷婷久久| 亚洲第一综合网| 亚洲成人福利片| 国产精品色综合| 国产亚洲a∨片在线观看| 国产一线二线在线观看| 91九色在线视频| 成人黄色小视频| av免费观看网| 粉嫩av亚洲一区二区图片| 久久九九视频| 欧美色综合一区二区三区| 国产一区二区三区视频免费| 国产中文在线播放| 999视频在线观看| 久久一区二区三区喷水| 欧美视频第三页| www.成人在线| www.av视频在线观看| 91精品国产色综合久久ai换脸| 97电影在线看视频| 国产成人中文字幕| 香蕉久久精品日日躁夜夜躁| 久久亚洲中文字幕无码| 国产成人精品免费在线| 国产精品久久久久久久精| 欧美日韩不卡一区| 欧美被日视频| 91精品久久久久久久久久另类| 欧美久久精品一级c片| www黄色av| 久久人人爽人人爽| 免费黄色网址在线| 亚洲欧美变态国产另类| 麻豆蜜桃在线观看| 蜜桃视频在线观看成人| 99综合视频| 欧美丰满少妇人妻精品| 精品日本美女福利在线观看| 五月天婷婷社区| 日本久久久a级免费| 国产精品一区二区99| 日本爱爱免费视频| 国产精品无人区| 国产精品爽爽久久| 久久国产精品久久精品| 99热这里只有精品首页 | 欧洲av在线精品| 国产高清视频在线| 国产三级精品网站| 欧美激情1区2区3区| 中文在线字幕观看| 亚洲妇熟xx妇色黄| 免费国产在线观看| 国产精品亚洲аv天堂网| 亚洲成av人电影| 日韩精品xxx| 精品久久久久久久中文字幕| 日本一级在线观看| 国产精品免费久久久久久| 天天色综合色| 欧美日韩人妻精品一区在线| 精品久久久国产精品999| 蜜桃视频在线入口www| 国产精品一区av| 国产精品va| 三上悠亚影音先锋| 在线不卡的av| 成人免费图片免费观看| 日本高清不卡一区二区三| 黑人巨大精品欧美一区| 久久精品国产亚洲av无码娇色| 亚洲美女视频网站| 国产精品久久久久久久久久久久久久久 | 成人免费观看在线视频| 国产精品成人观看视频国产奇米| 欧美电影三区| 中文在线永久免费观看| 欧美日韩一级二级| av影院在线免费观看| 亚洲一区不卡在线| k8久久久一区二区三区| 97人妻精品视频一区| 欧美放荡办公室videos4k| 国产不卡av一区二区| 欧美视频国产视频| 欧美性高潮床叫视频| 精品国产丝袜高跟鞋| 欧美精品一区二区三区四区五区| 狠狠色综合播放一区二区| 日韩黄色在线播放|