什么是haslayout?

时间:2009-11-25 02:54:09

标签: html css internet-explorer internet-explorer-6

我已经阅读了一些关于它的文章,但没有得到实际的内容。任何人都可以解释我。

它只与IE6有关吗?

zoom:1是什么?

layout是仅限IE的标签吗?

修改

我发现此信息对我来说非常有用

  

因为Internet Explorer太旧了   (因为它是最早的浏览器之一   它没有奢侈品   作为当前浏览器重新开始   做。随着时间的推移,微软   开始采用新的发动机来使用   CSS看起来很好......但是,CSS   改变了基本假设   Internet Explorer的引擎是   基于 - 任何重要的事情   是一个包含所有它的矩形   内容。

     

所以要处理新的标准   CSS,微软决定修复他们的   古代发动机通过实施   hasLayout属性,而不是   重建IE。每一个元素   Internet Explorer现在有一个hasLayout   属性。它取决于元素   设置为true或false by   默认。如果hasLayout设置为true -   元素是一个独立的盒子   负责渲染自己。   如果为false - 那么元素依赖于   具有hasLayout的父元素   设置为true以呈现它。这是   大多数IE漏洞都来自哪里   寿命。

来源:http://bytesizecss.com/blog/post/fix-haslayout-with-one-line-of-css

我还在这里再找到一个讨论:http://www.molly.com/2007/03/30/back-to-work-someone-please-clearly-articulate-haslayout/

1 个答案:

答案 0 :(得分:14)

HTML元素上的非标准属性仅受IE7及更低版本支持(IE8兼容模式),如果触发,会导致元素以某种方式呈现(这可能是意外的,随意的,可能是天赐之物,也可能是地狱)。

经典示例是为元素提供布局,以便它可以清除浮动。

#wrapper { zoom:1; }

该元素现在将包含浮点数。除auto / normal之外的任何属性和值都将触发布局属性。

* display: inline-block
* height: (any value except auto)
* float: (left or right)
* position: absolute
* width: (any value except auto)
* writing-mode: tb-rl
* zoom: (any value except normal)

请仔细阅读@ http://reference.sitepoint.com/css/haslayout