一、什么是 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这个属性也是可以被支持的