一、什么是 haslayout
属性?
haslayout
是微软Windows Internet Explorer
渲染引擎的一个内部组成部分。在Internet Explorer
中,会使用布局的概念来定位元素的尺寸和位置。
但是这样在
ie
中会导致很大的性能问题,ie
团队为了减少性能的开销,决定将布局只应用在需要它们的元素上。
也就是说默认情况下,每个元素都应该有它自己的样式,但是在ie中有些元素的样式并没有激发出来,所以
ie
浏览器的bug
很多。对于这些bug
,只要我们将他的haslayou
属性激发出来,就可以解决了。
haslayout
有两个属性值true
和false
,为true
的时候haslayout
被激发,我们就可以说这个元素有一个布局。当一个元素有布局的时候,它就负责对自己和子孙元素进行尺寸的计算和定位。haslayout
为只读属性,一旦触发就不可逆转
scale
元素以自己的中心为基点做缩放
scale
是先布局后变换的,变换不会对布局产生影响
zoom
先缩放,后计算布局
二、区别
zoom
缩放会将元素保持在左上角,而scale
默认是中间位置
zoom
在非IE
浏览器中表现为支持放大或者缩小
三、作用
检查页面的标签是否闭合
触发IE浏览器的
haslayout
,解决ie
下的浮动
检查 IE 下是否触发
haslayout
解决
ie
下的浮动,margin
重叠问题
四、兼容问题
火狐浏览器不支持
zoom
属性,但是在webkit
内核浏览器中zoom
这个属性也是可以被支持的