睡覺時(shí)間到,然而天馬行空想到了zoom:1炫欺,于是手欠搜了谷歌,就引發(fā)了這樁事故...
看bootstrap源碼的時(shí)候看到了*zoom:1熏兄,當(dāng)時(shí)年少無知用了百度(莫名其妙黑)品洛,上面說“移動(dòng)端可以不用zoom:1”...好噠树姨!合上本子不去管了。桥状。帽揪。
以上都是廢話??。
這里面為什么用*zoom:1——為了讓元素的hasLayout生效辅斟,變?yōu)閠rue(可由objElement.currentStyle.hasLayout獲取查看)转晰。
what is hasLayout
hasLayout,僅限于Windows IE當(dāng)中存在這個(gè)概念士飒,它決定了元素如何對(duì)其內(nèi)容定位和尺寸計(jì)算查邢,以及與其他元素的關(guān)系和相互作用。
且看一個(gè)元素到底有沒有"layout"酵幕,有還是沒有呢扰藕?
- 有的話,元素生成了自己的一個(gè)“布局”芳撒,負(fù)責(zé)自己和子元素內(nèi)容的尺寸和定位(翅膀硬了可以單飛了)邓深;
- 沒有的話,元素會(huì)靠它最近的有l(wèi)ayout的祖先元素來控制自己的尺寸和定位(嫩的話還得靠爹)笔刹。
why exists
因?yàn)镮E說了芥备,元素都有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外任意值,僅用于塊級(jí)元素
overflow-x: 除visible 外任意值山孔,僅用于塊級(jí)元素
overflow-y: 除visible 外任意值懂讯,僅用于塊級(jí)元素
position: fixed
所以在上面那一坨里面可以看到zoom的身影,但是為什么用zoom而不用其他台颠?因?yàn)?strong>zoom:1不會(huì)影響到元素的現(xiàn)有表現(xiàn)啊褐望,人畜無害啊有木有!