hasLayout

作者: Yuxin_Liu | 来源:发表于2017-02-25 23:32 被阅读0次

睡觉时间到,然而天马行空想到了zoom:1,于是手欠搜了谷歌,就引发了这桩事故...

看bootstrap源码的时候看到了*zoom:1,当时年少无知用了百度(莫名其妙黑),上面说“移动端可以不用zoom:1”...好哒!合上本子不去管了。。。
以上都是废话🙂。

这里面为什么用*zoom:1——为了让元素的hasLayout生效,变为true(可由objElement.currentStyle.hasLayout获取查看)。

what is hasLayout

hasLayout,仅限于Windows IE当中存在这个概念,它决定了元素如何对其内容定位和尺寸计算,以及与其他元素的关系和相互作用。
且看一个元素到底有没有"layout",有还是没有呢?

  • 有的话,元素生成了自己的一个“布局”,负责自己和子元素内容的尺寸和定位(翅膀硬了可以单飞了);
  • 没有的话,元素会靠它最近的有layout的祖先元素来控制自己的尺寸和定位(嫩的话还得靠爹)。

why exists

因为IE说了,元素都有layout的话开销大累得慌,所以默认只能给有资质的设置layout,那么谁有资质呢?

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

How to have the "layout"

表现好的话,也是可以有自己的layout的,怎么做才能表现好呢?

//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不会影响到元素的现有表现啊,人畜无害啊有木有!

相关文章

  • zoom 和 scale

    一、什么是 haslayout 属性? haslayout 是微软 Windows Internet Explor...

  • hasLayout

    睡觉时间到,然而天马行空想到了zoom:1,于是手欠搜了谷歌,就引发了这桩事故... 看bootstrap源码的时...

  • zoom:1的作用

    兼容IE6、IE7、IE8浏览器:触发IE浏览器的haslayout(如果触发了 haslayout,IE 的调试...

  • CSS常见问题(三)

    display:inline-block和hasLayout display的值除了block和inline,还有...

  • 深入理解IE haslayout

    转载自Bubblings Blog原文地址:http://riny.net/2013/haslayout/ 1.什...

  • CSS的常见问题(二)

    hasLayout 很多时候,CSS在IE下的解释十分奇怪,明明在Firefox下显示的非常正确,但到了IE下却出...

  • 清楚浮动的方法和BFC、hasLayout

    清理浮动两种方式 利用 clear属性,清除浮动 使父容器形成BFC 考虑下列情景: 希望是这样: 实际上却是这样...

  • 闭合内部浮动引发的hasLayout、BFC学习

    作为前端的好孩子,总会遇到一个经典不朽的问题:有几种闭合内部浮动的方法?哈哈,是不是想说这个能难得住我?马上能列出...

网友评论

      本文标题:hasLayout

      本文链接:https://www.haomeiwen.com/subject/iunnwttx.html