精品欧美一区二区三区在线观看 _久久久久国色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)

国产一区福利视频| 国内免费精品永久在线视频| 亚洲xxx在线观看| 日本三级视频在线观看| 激情五月婷婷综合| 欧美激情免费在线| 国产特级黄色录像| 日本成人手机在线| 日韩欧美国产免费播放| 四虎免费在线观看视频| 婷婷色在线视频| 蜜乳av一区二区三区| 欧美激情精品久久久久久大尺度| 亚洲熟妇一区二区三区| 成人日韩视频| 91国在线观看| 美脚丝袜脚交一区二区| 北岛玲一区二区三区| 国产91精品一区二区麻豆亚洲| 欧美一级免费看| 国产极品美女在线| 日韩欧美在线精品| 欧美一区二区三区在线电影| 欧美性久久久久| 视频在线这里都是精品| 国产欧美日韩综合精品一区二区 | 免费国产一区| www.国产欧美| 日韩电影在线观看电影| 高清视频欧美一级| 国产一区二区三区在线视频观看| 亚洲盗摄视频| 亚洲二区在线播放视频| 亚洲综合伊人久久| 亚洲一区二区三区久久久| 黑人精品xxx一区| 欧美中日韩在线| 麻豆视频在线免费观看| 中文久久乱码一区二区| 奇米影视首页 狠狠色丁香婷婷久久综合| aa视频在线免费观看| 麻豆专区一区二区三区四区五区| 欧美亚洲在线播放| 日韩欧美一区二区一幕| 欧美精品aa| 欧美成人免费大片| 国产午夜手机精彩视频| 日产精品一区二区| 中文字幕在线日韩| 天堂av网手机版| 成人羞羞网站入口| 中文字幕亚洲专区| 中文字幕av久久爽一区| 红桃视频在线观看一区二区| 亚洲精品自拍第一页| 精品人妻伦一二三区久| h视频久久久| 精品国产a毛片| 亚洲一区二区三区四区av| 51精品国产| 精品国产不卡一区二区三区| 中国xxxx性xxxx产国| 国产欧美啪啪| 精品夜色国产国偷在线| 国产偷人妻精品一区| 日韩中文av| 一本色道久久综合狠狠躁篇怎么玩| 久久国产精品影院| 大色综合视频网站在线播放| 揄拍成人国产精品视频| 久草福利资源在线| 欧美成人综合| 98精品在线视频| 日本久久综合网| 另类欧美日韩国产在线| 亚洲影影院av| 天堂av中文字幕| 久久久99久久| 裸体裸乳免费看| 2019中文字幕在线电影免费 | 夜夜躁日日躁狠狠久久av| 日韩高清在线电影| 成人网在线免费观看| 精品人妻少妇AV无码专区| 成人av在线资源| 欧美日韩成人一区二区三区| 在线观看麻豆蜜桃| 亚洲最大色网站| 美女福利视频在线| 亚洲人成777| 精品电影一区二区| 日本理论中文字幕| 欧美日韩p片| 国产97人人超碰caoprom| 亚洲一级特黄毛片| 成人精品小蝌蚪| 偷拍视频一区二区| 久色国产在线| 欧美天天综合网| 任你躁av一区二区三区| 成人高清av| 久久久久久久爱| 最好看的日本字幕mv视频大全 | 不卡一区二区在线观看| 97精品在线| 5566成人精品视频免费| 91国偷自产中文字幕久久| 成人激情动漫在线观看| 亚洲欧美丝袜| 欧美色图天堂| 欧美精品乱人伦久久久久久| wwwwww日本| 欧美国产三区| 国产精品视频一区国模私拍| 人人妻人人澡人人爽精品日本 | 先锋影音网一区| 波多野结依一区| 欧美福利一区二区| 中字幕一区二区三区乱码| 亚洲国产电影| 91香蕉亚洲精品| 成人av毛片| 日韩欧美黄色动漫| 88av在线播放| 亚洲午夜一级| 亚洲www在线| porn亚洲| 色吊一区二区三区| 国产美女视频免费观看下载软件| 一区二区三区毛片免费| 国产精品视频一区国模私拍 | 蜜臀久久99精品久久久无需会员| 69av视频在线观看| 久久久久久久网| 免费看一级大黄情大片| 大奶在线精品| 欧美激情小视频| 国产草草影院ccyycom| 国产精品免费网站在线观看| 欧美成人免费高清视频| 天天久久夜夜| 性欧美办公室18xxxxhd| 国产香蕉在线观看| 一区二区三区四区不卡在线| 久久久久久综合网| 亚洲成av人片乱码色午夜| 国产成人久久久| 国产高清免费av在线| 色综合久久久久综合体| 性久久久久久久久久| 国产亚洲在线观看| 久久国产日韩欧美| 水蜜桃在线视频| 亚洲成人动漫在线播放| 国产精品7777| 97久久超碰国产精品电影| 欧洲黄色一级视频| 免费成人网www| 国产精品久久二区| av免费在线一区二区三区| 欧美日韩在线精品一区二区三区激情 | 国产精品夜夜嗨| 女人色极品影院| 风间由美性色一区二区三区四区| 久久久久久欧美| 天堂av在线资源| 91福利资源站| 特黄一区二区三区| 国产精品自拍毛片| 亚洲中文字幕无码av永久| 日韩精品丝袜美腿| 国产精品欧美在线| 老司机午夜在线视频| 欧美成人三级电影在线| 国产一级片毛片| 国产精品色哟哟网站| 国产探花在线观看视频| 伊人久久婷婷| 亚洲国产一区二区精品视频| 999色成人| 97免费在线视频| 午夜在线视频| 精品国产一区二区在线观看| 手机看片久久久| 中文字幕在线观看不卡视频| av电影在线播放| 日韩黄色小视频| 欧美日韩视频免费| 免费一区二区三区视频导航| 成人伊人精品色xxxx视频| 不卡一本毛片| www.色综合| 人妻少妇精品无码专区久久| 欧美性生活一区| 国产亚洲欧美久久久久| 国产区在线观看成人精品| 99热这里只有精品2| 亚洲在线日韩| av磁力番号网| 九九综合九九| 成人精品水蜜桃| 成人黄色在线| 隔壁老王国产在线精品| 欧美成年黄网站色视频| 亚洲精品在线观看www| 国产福利小视频| 在线观看亚洲a| 日韩精品在线免费看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 中文国产字幕在线观看| 亚洲人成电影网| 丰满人妻熟女aⅴ一区| 欧美日韩成人综合天天影院 | 欧美日韩久久不卡| 欧美性猛交bbbbb精品| 一区二区三区欧美视频| 快灬快灬一下爽蜜桃在线观看| 不卡av电影在线播放| 在线观看免费av网址| 三级一区在线视频先锋| 黄色一级在线视频| 欧美天堂亚洲电影院在线观看| 少妇免费毛片久久久久久久久| 国产香蕉精品| www日韩av| 国产高清精品二区| 国产精品毛片a∨一区二区三区|国| 国产直播在线| 欧美极品美女视频网站在线观看免费 | 亚洲三级电影| 国产精品三级在线| 亚洲精品.com| 日本欧美中文字幕| 俺来俺也去www色在线观看| 久久综合久久88| 免费在线观看av| 中文字幕亚洲无线码在线一区| 国产美女性感在线观看懂色av | 中文字幕在线播放| 亚洲深夜福利网站| 美州a亚洲一视本频v色道| 日韩激情视频在线| 婷婷丁香一区二区三区| 亚洲国产另类久久精品| 蜜桃av噜噜一区二区三区麻豆| 欧美zozozo| 亚洲成人777777| 日韩精品一区二区三区四区 | 日本成人福利| 国产精品三级久久久久久电影| 韩国精品视频在线观看| 国产精品色午夜在线观看| 久久天堂影院| 91久久久久久久久久| 久久99成人| 97国产超碰| 日本精品影院| 日本一区免费| 99精品视频在线| 欧美一级特黄aaaaaa在线看片| 欧美日韩视频一区二区三区| www.一区二区.com| 日韩一级网站| 国产福利影院在线观看| 看国产成人h片视频| 污污视频在线免费| 成人av网站在线观看免费| 日韩网站在线播放| 国产欧美视频在线观看| 182在线观看视频| 洋洋av久久久久久久一区| 天天插天天操天天干| 色偷偷久久人人79超碰人人澡| 中文字幕黄色av| 欧美成人a视频| 欧美少妇另类| 色偷偷噜噜噜亚洲男人| 在线观看a级片| 欧美孕妇性xx| 香蕉久久一区| 国产一区二区三区av在线| 精品freesex老太交| 久久久一二三四| 99av国产精品欲麻豆| 亚洲成色www.777999| 国产乱淫av一区二区三区| 欲求不满的岳中文字幕| 亚洲国产精品二十页| 久久久精品99| 91久久奴性调教| 亚洲成a人片在线| 一区二区在线视频播放| 亚洲第一图区| 国产不卡av在线| 涩爱av色老久久精品偷偷鲁| 欧美一区二区福利| 欧美成人一区二免费视频软件| 50路60路老熟妇啪啪| 国产精品一区专区| av黄色免费网站| 亚洲综合男人的天堂| 中文字幕欧美人妻精品| 亚洲高清不卡av| 黄色成人影院| 国产精品aaaa| 国产欧美三级电影| 三年中国中文在线观看免费播放| 亚洲一区免费| 精品人妻二区中文字幕| 中文字幕不卡在线播放| 91国产丝袜播放在线| 欧美一级视频精品观看| av影片在线看| 日韩美女毛茸茸| 国产乱人伦精品一区| 在线天堂一区av电影| 久久九九免费| 青青草视频播放| 亚洲一区自拍偷拍| 国产高清第一页| 深夜福利国产精品| 在线中文字幕播放| 国产欧美日韩综合一区在线观看| 在线精品国产| 蜜臀一区二区三区精品免费视频 | 国产精品suv一区二区88| 欧美午夜美女看片| 欧美熟妇另类久久久久久不卡| 久久精品国产欧美亚洲人人爽| 在线看欧美视频| 日本亚洲导航| 久久中文字幕一区二区三区| 亚洲国产果冻传媒av在线观看| 亚洲国产精品久久不卡毛片| 精品国产乱码一区二区三| 日韩视频免费在线观看| 韩国理伦片久久电影网| 亚洲一区二区在线看| 蜜桃av一区二区| 超碰人人人人人人人| 欧美性生活久久| 午夜激情视频在线| 国产噜噜噜噜噜久久久久久久久| 精品一区电影| 能在线观看的av网站| 久久久久久久久久美女| 久久久蜜桃一区二区| 亚洲视频在线观看免费| 日本免费一区二区三区四区| 欧美日韩三区四区| 老**午夜毛片一区二区三区| 一级黄色性视频| 欧美日韩五月天| 国产在线观看a| 97久久天天综合色天天综合色hd| 欧美午夜电影在线观看| 催眠调教后宫乱淫校园| 欧美视频在线免费| 国产尤物视频在线| 国产有码一区二区| 在线电影一区二区| 波多野结衣一二三区| 婷婷中文字幕一区三区| 久蕉在线视频| 国产欧美在线看| 午夜电影亚洲| 7788色淫网站小说| 在线国产亚洲欧美| 九色porny在线| 痴汉一区二区三区| 国产亚洲激情| 美女福利视频网| 欧美成人女星排名| 电影网一区二区| 亚洲在线播放电影| 粉嫩13p一区二区三区| 一本一道无码中文字幕精品热| 中文字幕久久久| 日韩视频一二区| 漂亮人妻被中出中文字幕| 欧美激情综合网| 国产福利免费视频| 日本一区二区三区四区视频| 欧美激情欧美| 波多野结衣一二三区| 欧美日韩www| 97蜜桃久久| 在线观看精品视频| av中文字幕一区| 国产美女无遮挡永久免费| 亚州av一区二区| 91精品国产成人观看| 波多野结衣福利| 日韩午夜在线观看视频| 日韩电影免费观| 欧美黄网在线观看| 欧美国产精品中文字幕| 欧美一级淫片免费视频魅影视频| 国产精品麻豆va在线播放| 亚洲黄色天堂|