亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

CSS教程:認真學習haslayout

2024-07-11 09:03:45
字體:
來源:轉載
供稿:網友

武林網(www.49028c.com)文章簡介:要想更好的理解 css, 尤其是 IE 下對 css 的渲染,haslayout 是一個非常有必要徹底弄清除的概念。大多IE下的顯示錯誤,就是源于 haslayout。

要想更好的理解 css, 尤其是 IE 下對 css 的渲染,haslayout 是一個非常有必要徹底弄清除的概念。大多IE下的顯示錯誤,就是源于 haslayout。

什么是 haslayout ?
haslayout 是Windows Internet Explorer渲染引擎的一個內部組成部分。在Internet Explorer中,一個元素要么自己對自身的內容進行計算大小和組織,要么依賴于父元素來計算尺寸和組織內容。為了調節這兩個不同的概念,渲染引擎采用 了 hasLayout 的屬性,屬性值可以為true或false。當一個元素的 hasLayout 屬性值為true時,我們說這個元素有一個布局(layout)

當一個元素有一個布局時,它負責對自己和可能的子孫元素進行尺寸計算和定位。簡單來說,這意味著這個元素需要花更多的代價來維護自身和里面的內容, 而不是依賴于祖先元素來完成這些工作。因此,一些元素默認會有一個布局。當我們說一個元素“擁有layout”或“得到layout”,或者說一個元素 “has layout” 的時候,我們的意思是指它的微軟專有屬性 hasLayout 被設為了 true 。一個“layout元素”可以是一個默認就擁有 layout 的元素或者是一個通過設置某些 CSS 屬性得到 layout 的元素。如果某個HTML元素擁有 haslayout 屬性,那么這個元素的 haslayout 的值一定只有 true,haslayout 為只讀屬性 一旦被觸發,就不可逆轉。通過 IE Developer Toolbar 可以查看 IE 下 HTML 元素是否擁有haslayout,在 IE Developer Toolbar 下,擁有 haslayout 的元素,通常顯示為“haslayout = -1”。

負責組織自身內容的元素將默認有一個布局,主要包括以下元素(不完全列表):

* body and html
* table, tr, th, td
* img
* hr
* input, button, file, select, textarea, fieldset
* marquee
* frameset, frame, iframe
* objects, applets, embed

對于并非所有的元素都默認有布局,微軟給出的主要原因是“性能和簡潔”。如果所有的元素都默認有布局,會對性能和內存使用上產生有害的影響。

如何激發 haslayout?
大部分的 IE 顯示錯誤,都可以通過激發元素的 haslayout 屬性來修正??梢酝ㄟ^設置 css 尺寸屬性(width/height)等來激發元素的 haslayout,使其“擁有布局”。如下所示,通過設置以下 css 屬性即可。

* display: inline-block
* height: (任何值除了auto)
* float: (left 或 right)
* position: absolute
* width: (任何值除了auto)
* writing-mode: tb-rl
* zoom: (除 normal 外任意值)

Internet Explorer 7 還有一些額外的屬性(不完全列表):

* min-height: (任意值)
* max-height: (除 none 外任意值)
* min-width: (任意值)
* max-width: (除 none 外任意值)
* overflow: (除 visible 外任意值)
* overflow-x: (除 visible 外任意值)
* overflow-y: (除 visible 外任意值)
* position: fixed

其中 overflow-x 和 overflow-y 是 css3 盒模型中的屬性,目前還未被瀏覽器廣泛支持。

對于內聯元素(默認即為內聯的元素,如 span,或 display:inline; 的元素),

width 和 height 只在 IE5.x 下和 IE6 或更新版本的 quirks 模式下觸發 hasLayout 。而對于 IE6,如果瀏覽器運行于標準兼容模式下,內聯元素會忽略 width 或 height 屬性,所以設置 width 或 height 不能在此種情況下令該元素具有 layout。
zoom 總是可以觸發 hasLayout,但是在 IE5.0 中不支持。
具有“layout” 的元素如果同時 display: inline ,那么它的行為就和標準中所說的 inline-block 很類似了:在段落中和普通文字一樣在水平方向和連續排列,受 vertical-align 影響,并且大小可以根據內容自適應調整。這也可以解釋為什么單單在 IE/Win 中內聯元素可以包含塊級元素而少出問題,因為在別的瀏覽器中 display: inline 就是內聯,不像 IE/Win 一旦內聯元素擁有 layout 還會變成 inline-block。

haslayout 問題的調試與解決
當網頁在 IE 中有異常表現時,可以嘗試激發 haslayout 來看看是不是問題所在。常用的方法是給某元素 css 設定 zoom:1 。使用 zoom:1 是因為大多數情況下,它能在不影響現有環境的條件下激發元素的 haslayout。而一旦問題消失,那基本上就可以判斷是 haslayout 的原因。然后就可以通過設定相應的 css 屬性來對這個問題進行修正了。建議首先要考慮的是設定元素的 width/height 屬性,其次再考慮其他屬性。

對 IE6 及更早版本來說,常用的方法被稱為霍莉破解(Holly hack),即設定這個元素的高度為 1% (height:1%;)。需要注意的是,當這個元素的 overflow 屬性被設置為 visible 時,這個方法就失效了?;蛘呤褂?IE 的條件注釋。

對 IE7 來說,最好的方法時設置元素的最小高度為 0 (min-height:0;)。

haslayout 問題引起的常見 bug
IE6 及更低版本的雙空白邊浮動 bug
bug 修復: display:inline;

IE5-6/win 的 3 像素偏移 bug
bug 修復: _height:1%;

E6 的躲躲貓(peek-a-boo) bug
bug 修復: _height:1%;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品日韩视频在线观看| 国产精品偷伦视频免费观看国产| 国产欧美一区二区三区在线| 久久精品国产视频| 青青久久av北条麻妃黑人| 欧美午夜片在线免费观看| 狠狠做深爱婷婷久久综合一区| 成人网中文字幕| 性色av香蕉一区二区| 91精品国产综合久久香蕉922| 国产视频精品免费播放| 青青草一区二区| 欧美日韩中文字幕综合视频| 欧美老少配视频| 欧美日韩一区二区三区| 久久精品影视伊人网| 欧美精品在线观看91| 日韩激情第一页| 亚洲成人国产精品| 亚洲天堂av高清| 亚洲2020天天堂在线观看| 欧美在线视频一区| 欧美黑人极品猛少妇色xxxxx| 欧美一区三区三区高中清蜜桃| 欧美精品中文字幕一区| 亚洲综合视频1区| 久久91精品国产91久久跳| 国产精品你懂得| 成人亚洲综合色就1024| 日韩欧美国产免费播放| 亚洲成色777777在线观看影院| 色诱女教师一区二区三区| 欧美一级高清免费播放| 国产精品久久久久久久久粉嫩av| 日本国产一区二区三区| 亚洲国产精品电影在线观看| 亚洲影院高清在线| 国产香蕉一区二区三区在线视频| 日韩电影大全免费观看2023年上| 国产精品女视频| 久久人人爽人人爽人人片av高请| 国产精品欧美一区二区| 俺去亚洲欧洲欧美日韩| 国产精品久久久久久av| 成人欧美一区二区三区在线| 91高清视频在线免费观看| 日韩在线观看免费高清完整版| 国产亚洲日本欧美韩国| 亚洲成色777777在线观看影院| 久久综合伊人77777尤物| 另类图片亚洲另类| 九九视频这里只有精品| 中文国产成人精品| 91高清视频免费| 欧美激情日韩图片| 亚洲精品网站在线播放gif| 最近2019好看的中文字幕免费| 亚洲丝袜在线视频| 亚洲综合一区二区不卡| 亚洲老板91色精品久久| 中文字幕精品在线视频| www.日韩系列| 91网站在线免费观看| 在线视频中文亚洲| 欧美日韩国产999| 自拍偷拍亚洲精品| 九色精品美女在线| 久久香蕉频线观| 欧美成人在线网站| 欧美日韩国产丝袜美女| 伊人激情综合网| 91香蕉国产在线观看| 最近2019年中文视频免费在线观看| 国产精品黄色影片导航在线观看| 欧洲亚洲在线视频| 中文字幕自拍vr一区二区三区| 国模gogo一区二区大胆私拍| 国产一区二区三区在线看| 中日韩美女免费视频网站在线观看| 黑人狂躁日本妞一区二区三区| 成人xxxx视频| 51精品在线观看| 欧美日韩福利视频| 亚洲国产美女久久久久| 国产亚洲欧洲高清一区| xvideos亚洲人网站| 国色天香2019中文字幕在线观看| 亚洲视频在线观看网站| 91精品国产91久久久久久吃药| 这里只有精品在线观看| 久久精品91久久香蕉加勒比| 国产999精品久久久影片官网| 欧美高清视频免费观看| 亚洲四色影视在线观看| 成人激情视频免费在线| 美女少妇精品视频| 91系列在线观看| 亚洲xxx视频| 久久99国产精品自在自在app| 色综合久久中文字幕综合网小说| 欧美激情小视频| 欧美中文在线视频| 精品成人69xx.xyz| 亚洲色图18p| 国产成人av在线播放| 欧美与黑人午夜性猛交久久久| 国产精品亚洲аv天堂网| 亚洲一区美女视频在线观看免费| 日韩成人在线电影网| 精品亚洲一区二区三区在线播放| 午夜精品在线视频| 色www亚洲国产张柏芝| 精品国产精品三级精品av网址| 国产精品吊钟奶在线| 国产一区二区色| 亚洲电影天堂av| 欧美精品999| 3344国产精品免费看| 亚洲伊人成综合成人网| 欧美尤物巨大精品爽| 丝袜一区二区三区| 久久久av一区| 国产精品一区二区久久久久| 亚洲精品自拍第一页| 久久这里有精品视频| 97色在线观看| 欧美大片在线免费观看| 成人在线中文字幕| 久久精品国产亚洲精品2020| 欧美亚洲视频在线观看| 欧美日韩国产中文精品字幕自在自线| 狠狠操狠狠色综合网| 日韩精品久久久久久福利| www日韩中文字幕在线看| 亚洲美女视频网| 欧美日韩亚洲网| 欧美大片欧美激情性色a∨久久| 久久免费视频在线观看| 亚洲xxxx3d| 亚洲无亚洲人成网站77777| 色综合天天综合网国产成人网| 国产欧美日韩视频| 91网站免费观看| 国产亚洲一级高清| 狠狠色狠狠色综合日日五| 国产精品欧美日韩一区二区| 富二代精品短视频| 97精品国产aⅴ7777| 97在线视频精品| 成人疯狂猛交xxx| www.99久久热国产日韩欧美.com| 国产欧美 在线欧美| 久久精品国产69国产精品亚洲| 国产91久久婷婷一区二区| 国产精品一区二区性色av| 亚洲视频在线观看视频| 欧美精品久久久久久久免费观看| 欧美色videos| 91视频-88av| 久久免费福利视频| 国产精品白嫩初高中害羞小美女| 亚洲成人a级网| 自拍亚洲一区欧美另类| 自拍视频国产精品|