zoom 和 scale

一、什么是 haslayout 属性?

haslayout 是微软 Windows Internet Explorer 渲染引擎的一个内部组成部分。在 Internet Explorer 中,会使用布局的概念来定位元素的尺寸和位置。

但是这样在 ie 中会导致很大的性能问题,ie 团队为了减少性能的开销,决定将布局只应用在需要它们的元素上。

也就是说默认情况下,每个元素都应该有它自己的样式,但是在ie中有些元素的样式并没有激发出来,所以 ie 浏览器的 bug 很多。对于这些 bug ,只要我们将他的 haslayou 属性激发出来,就可以解决了。

haslayout 有两个属性值 truefalse,为 true的时候haslayout 被激发,我们就可以说这个元素有一个布局。当一个元素有布局的时候,它就负责对自己和子孙元素进行尺寸的计算和定位。haslayout 为只读属性,一旦触发就不可逆转

scale 元素以自己的中心为基点做缩放

scale 是先布局后变换的,变换不会对布局产生影响

zoom 先缩放,后计算布局

二、区别

zoom 缩放会将元素保持在左上角,而 scale 默认是中间位置

zoom 在非 IE 浏览器中表现为支持放大或者缩小

三、作用

检查页面的标签是否闭合

触发IE浏览器的 haslayout ,解决 ie 下的浮动

检查 IE 下是否触发 haslayout

解决 ie 下的浮动,margin 重叠问题

四、兼容问题

火狐浏览器不支持 zoom 属性,但是在 webkit 内核浏览器中zoom 这个属性也是可以被支持的

你可能感兴趣的:(zoom 和 scale)