某一天。前同事低着头从鹅厂面试回来。他说他被一道非经常见的问题难倒了。

对方问他知道zoom:1的作用吗?

前同事:清楚浮动啊,触发haslayout。

再问:那你知道zoom:1的工作原理和来龙去脉吗?

前同事:......

zoom:1确实帮我们攻克了不少ie下的bug,可是它的来龙去脉,又有多少人知道呢?

所以我老生常谈,说一下它的来龙去脉。

Zoom属性是IE浏览器的专有属性。它能够设置或检索对象的缩放比例。先来一张来自度娘的截图

在寻常的css编写过程中。zoom:1可以比較奇妙地解决ie下比較奇葩的bug。

譬如外边距(margin)的重叠,譬如浮动的清除。譬如触发ie的haslayout属性等等。

来龙去脉大概例如以下:

度娘告诉我们:zoom是设置或检索对象的缩放比例。设置或更改一个已被呈递的对象的此属性值将导致围绕对象的内容又一次流动。

尽管此属性不可继承。可是它会影响对象的全部子对象( children )。这样的影响非常像 background 和 filter 属性导致的变化。

此属性对于 currentStyle 对象而言是仅仅读的,对于其它对象而言是可读写的。

当设置了zoom的值之后,所设置的元素就会就会扩大或者缩小。高度宽度就会又一次计算了,这里一旦改变zoom值时事实上也会发生又一次渲染,运用这个原理,也就攻克了ie下子元素浮动时候父元素不随着自己主动扩大的问题。

Zoom属是IE浏览器的专有属性,火狐和老版本号的webkit核心的浏览器都不支持这个属性。然而,zoom如今已经被逐步标准化,出如今 CSS 3.0 规范草案中。

眼下非ie因为不支持这个属性,它们又是通过什么属性来实现元素的缩放呢?

我们能够通过css3里面的动画属性scale进行缩放。

好了。粗劣地说了一下zoom的来龙去脉,如有不对的地方。望多多不吝赐教。假设认为有收获,请多多留言。

Author: Alone

Antroduction: 高级前端开发project师

Sign: 人生没有失败,仅仅有没到的成功。

博主相关文章推荐:

移动端上下滑动事件之--坑爹的touch.js

轻轻谈一下seaJs——模块化开发的利器


有趣的前端题目,看了不懊悔

移动端前端开发概述

浅谈
标签的语义化

浅谈鼠标滚轮事件

不积跬步无以至千里----高度自适应的textarea

sass和less,优秀的前端样式预处理器

视差滚动的那些事儿


最新文章

  1. 【原创】SQL常用函数
  2. struts 国际化
  3. 【前端学习】git命令行界面
  4. noip2014普及组 比例简化
  5. HDU4542 小明系列故事——未知剩余系
  6. linux软件的安装,更新与卸载
  7. CSS 滤镜(IE浏览器专属其他浏览器不支持)
  8. [009]C---关于输出文本的打印问题
  9. UIImagePickerController 如何显示中文界面
  10. Phalcon自动加载(PHP自动加载)
  11. SVD奇异值分解的几何物理意义资料汇总
  12. 拾人牙慧篇之——linux文件挂载,基于nfs的文件共享系统安装配置
  13. css布局-双飞翼布局
  14. 使用GitHub作为Maven仓库并引用
  15. Windows Server 2012安装IIS 8.0
  16. 在模拟器上运行Android项目时报错:DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs
  17. Java 1-Java 基础语法
  18. Android-Java-面向对象与面向过程举例
  19. 内置锁(一)synchronized 介绍与用法
  20. 深入理解C/C++二维数组

热门文章

  1. Spring依赖注入的Setter注入(通过get和set方法注入)
  2. redis实践:用户注册登录功能
  3. Spring 一二事(6) - IOC MVC 简易搭建
  4. OOM问题定位方法
  5. Git的4个阶段的撤销更改
  6. Azure Nosql
  7. centos7 編譯 chmsee
  8. Ubuntu下安装JDK1.7
  9. addEventListener()绑定事件的对象方法。
  10. 强大的CSS3动画库animate.css