haslayout
Posted liuqyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了haslayout相关的知识,希望对你有一定的参考价值。
1.什么是haslayout?
layout是wiendows IE的一个私有概念,它决定了元素如何对其内容定位和尺寸计算,以及与其他元素的关系和相互作用。当一个元素“拥有布局”时,它会负责本身及其子元素的尺寸和定位。而如果一个元素“没有拥有布局”,那么它的尺寸和位置由最近的拥有布局的祖先元素控制。
必须说明的是,ie8及以上浏览器使用了全新的显示引擎,已经不再使用haslayout属性,因此haslayout属性只针对ie6和ie7。
2、为什么会有haslayout
理论上说,每个元素都应该控制自己的尺寸和定位,即每个元素都应该“拥有布局”,当然这只是理想状态。而对于早期的ie显示引擎来说,如果所有元素都“拥有布局”的话,会导致很大的性能问题。
因此ie开发团队决定使用布局概念来减少浏览器的性能开销,即只将布局应用于实际需要的那些元素,
所以便出现了“拥有布局”和“没有拥有布局”两种情况。
3、默认拥有布局的元素
html,body,table,tr,td,img,hr,
input,select,textarea,button,
iframe,embed,object,applet,marquee,
4、怎么触发haslayout
float:left或right
display:inline-block
position:absolut
width:除auto外任何值
height:除auto外任何值
zoom:除normal外任何值
writing-mode:tb-rl
5、在ie7中,以下属性也可以触发元素的haslayout
min-height:任意值
min-width:任意值
max-height:除none外任意值
max-width:除none外任意值
overflow:除visible外任意值,仅用于块级元素
overflow-x:除visible任意值,仅用于块级元素
overflow-y:除visible任意值,仅用于跨级元素
position:fixed;
以上是关于haslayout的主要内容,如果未能解决你的问题,请参考以下文章