hasLayout

睡覺時間到,然而天馬行空想到了zoom:1,于是手欠搜了谷歌,就引發(fā)了這樁事故...

看bootstrap源碼的時候看到了*zoom:1,當(dāng)時年少無知用了百度(莫名其妙黑),上面說“移動端可以不用zoom:1”...好噠!合上本子不去管了。。。
以上都是廢話??。

這里面為什么用*zoom:1——為了讓元素的hasLayout生效,變?yōu)閠rue(可由objElement.currentStyle.hasLayout獲取查看)。

what is hasLayout

hasLayout,僅限于Windows IE當(dāng)中存在這個概念,它決定了元素如何對其內(nèi)容定位和尺寸計算,以及與其他元素的關(guān)系和相互作用。
且看一個元素到底有沒有"layout",有還是沒有呢?

  • 有的話,元素生成了自己的一個“布局”,負(fù)責(zé)自己和子元素內(nèi)容的尺寸和定位(翅膀硬了可以單飛了);
  • 沒有的話,元素會靠它最近的有l(wèi)ayout的祖先元素來控制自己的尺寸和定位(嫩的話還得靠爹)。

why exists

因為IE說了,元素都有l(wèi)ayout的話開銷大累得慌,所以默認(rèn)只能給有資質(zhì)的設(shè)置layout,那么誰有資質(zhì)呢?

html, body
table
tr, td
img
hr
input, select, textarea, button
iframe, embed, object, applet
marquee

How to have the "layout"

表現(xiàn)好的話,也是可以有自己的layout的,怎么做才能表現(xiàn)好呢?

//IE6 / IE7
float: left或right
display: inline-block
position: absolute
width: 除auto外任何值
height: 除auto外任何值
zoom: 處normal外任何值
writing-mode: tb-rl

//IE7
min-height: 任意值
min-width: 任意值
max-height: 除none 外任意值
max-width: 除none 外任意值
overflow: 除visible外任意值,僅用于塊級元素
overflow-x: 除visible 外任意值,僅用于塊級元素
overflow-y: 除visible 外任意值,僅用于塊級元素
position: fixed

所以在上面那一坨里面可以看到zoom的身影,但是為什么用zoom而不用其他?因為zoom:1不會影響到元素的現(xiàn)有表現(xiàn)啊,人畜無害啊有木有!

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

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 14,122評論 1 92
  • 轉(zhuǎn)載自Bubblings Blog原文地址:http://riny.net/2013/haslayout/ 1.什...
    foolgry閱讀 429評論 0 0
  • 作為前端的好孩子,總會遇到一個經(jīng)典不朽的問題:有幾種閉合內(nèi)部浮動的方法?哈哈,是不是想說這個能難得住我?馬上能列出...
    Candy程閱讀 245評論 0 0
  • 清理浮動兩種方式 利用 clear屬性,清除浮動 使父容器形成BFC 考慮下列情景: 希望是這樣: 實際上卻是這樣...
    sdcV閱讀 508評論 1 3
  • “這么說,你是真的決定要做一只粽子了?”粽子A問糯米兄弟?!笆堑?,我從小時候就這么想,我可不要成為什么年糕,糍粑,...
    遠(yuǎn)方閱讀 539評論 0 5

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