ie的hasLayout

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ie的hasLayout相关的知识,希望对你有一定的参考价值。

在ie中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元素来计算尺寸和组织内容。为了调节这两个不同的概念,渲染引擎采用了 hasLayout 的属性,属性值可以为true或false。当一个元素的 hasLayout 属性值为true时,我们说这个元素有一个布局(layout)。当一个元素有一个布局时,它负责对自己和可能的子孙元素进行尺寸计算和定位。这意味着这个元素需要花更多的代价来维护自身和里面的内容,而不是依赖于祖先元素来完成这些工作。

 

下列元素默认 hasLayout=true
<table> <td> <body> <img> <hr> <input> <select> <textarea> <button> <iframe> <embed> <object> <applet> <marquee>

 

很多情况下,把 hasLayout的状态改成true 就可以解决很大部分ie下显示的bug。 hasLayout属性不能直接设定,可以通过设定一些特定的css属性来触发并改变 hasLayout 状态。

display
启动haslayout的值:inline-block
取消hasLayout的值:其他值

width/height
启动hasLayout的值:除了auto以外的值
取消hasLayout的值:auto

position
启动hasLayout的值:absolute
取消hasLayout的值:static

float
启动hasLayout的值:left或right
取消hasLayout的值:none

zoom
启动hasLayout的值:有值
取消hasLayout的值:narmal或者空值
(zoom是微软IE专有属性,可以触发hasLayout但不会影响页面的显示效果。zoom: 1常用来除错)

ie7还有一些额外的属性可以触发该属性(不完全列表):
min-height: (任何值)
max-height: (任何值除了none)
min-width: (任何值)
max-width: (任何值除了none)
overflow: (任何值除了visible)
overflow-x: (任何值除了visible)
overflow-y: (任何值除了visible)5
position: fixed

以上是关于ie的hasLayout的主要内容,如果未能解决你的问题,请参考以下文章

让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法

转载------让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法

ie11兼容模式ie8显示错误

让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法

一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法