最早接触zoom是在清除浮动的时候,原因就是zoom能触发IE的haslayout,当时也没深究其原理,今天,在查看张鑫旭的对overflow与zoom”清除浮动”的一些认识时,其中提到zoom是比例缩放,比较诧异,遂去查找资料(可惜,中文全介绍它是IE私有属性,用于清除浮动,人云亦云,造成就这一个简陋的版本可查询),发现其中大有乾坤,记下测试过程,其中有错误的,望大家指正,也希望大家去研究下这个东西,不能总是说它就能清除个浮动,是IE私有的……

一.zoom原本是IE的私有属性,但谷歌,opera,safari也是支持它的(火狐到现在的版本也不支持它),只不过其中有一些差异,容我后面道来

(截图来自:http://www.browsersupport.net/CSS/zoom

二.zoom在各浏览器不同的差异表现

 1. zoom就是缩放属性,没有继承,它是非标准的,它是不被推荐的(在W3CHTML上,它被写成css3 zoom属性,但我去w3c官网上没找到,不知道是我找错了地方还是别人,望有人找到知会我一下,不胜感谢)其语法如下:

zoom: normal | <number> | <percentage>

2.支持的浏览器对于zoom有两种不同的表现,一种是以chrome opera safari为主的现在标准浏览器(以下称标准浏览器),另一种是IE为主的浏览器(以下称ie)

注:(block与inline-block类的元素 统称为block类,inline类的元素统称为inline类,测试代码全在jsfiddle.net   测试代码地址:上,有兴趣的可以看看,我只截图敲结果)

a: 一个block类元素,给它加一个样式,zoom: 2

IE中不会去缩放当前block类元素(本身)的margin,定位中的top,left值,padding,其余的都会缩放,比如width,height,font-size,line-height等

标准浏览器中则会缩放margin,定位中的top,left,但也不会缩放padding,这个值,

截图如下:  

标准浏览器与ie对block类元素内部的所有元素属性都会进行缩放,(不包括padding)

b.针对内联元素,标准浏览器zoom有效,但IE8及以上的IE浏览器不支持这个属性,其余表现和它们各自阵营的表现一样,

如果想要IE8以上的内联元素也支持zoom,可以把内联元素转换成block类元素,或者,给它加个属性position: absolute,加不加top,left都一样,

c.  标准浏览器中的zoom加一个值  reset,相当于在一个有zoom的元素中不进行缩放

表述不清,望大家都自己做下实验。。。。,关于它的应用及与transforms的区别,有待进一步研究

资料引用:zoom介绍(FQ吧,骚年!!)

资料引用:zoom的浏览器支持

关于"zoom“ 的一点小认识的更多相关文章

  1. 关于win8开发的一点小总结

    我今天做画面的时候,发现了一点小问题. 我在xmal文件里面加了一个CheckBox控件,设置IsChecked属性为True,并添加了Checked事件.Checked事件里面有对另外一个TextB ...

  2. 关于PHP魔术方法__call的一点小发现

    好久没有上博客园写文章了,今晚终于有点空了,就来写一下昨天的一点小发现. 我自己所知,C++,Java的面向对象都有多态的特点,而PHP没有,但PHP可以通过继承链方法的重写来实现多态的属性.而魔术方 ...

  3. net core体系-web应用程序-4net core2.0大白话带你入门-8asp.net core 内置DI容器(DependencyInjection,控制翻转)的一点小理解

    asp.net core 内置DI容器的一点小理解   DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IO ...

  4. C与C++在形參的一点小差别

    先看一下以下的代码: int fun(a,b) int a; int b; { return 10; } void main(int argc, char ** argv) { fun(10); re ...

  5. BUI Webapp用于项目中的一点小心得

    接触BUI也有一段时间,也用在了移动端的项目开发中,总的来说,该框架用起来也挺灵活的,控件可以自由定制,前提是自己能认真地学习该框架的api,因为api里面说的东西比较详细,如果没有仔细看的,可能有些 ...

  6. 这几天帮一个朋友解决了一点小问题(RF的有些小问题及解决过程)

    最近涉猎自动化太少了,以至于都不经常更新了.最近一个朋友在做移动端自动化的时候遇到了一些小问题来找我解决.本人也不是很精通,只是接触的时间长了一点了.下面就是一些问题和解决过程: 1.她刚过来的时候, ...

  7. 深入剖析Nginx一点小笔记

    前几天在图书馆看书,恰好看到这本<深入剖析nginx>,花了快一周的时间看完了这本书,写点笔记心得便于以后复习. 以前对nginx的认识就只是停留在一个反向代理服务器上.百度了一下ngin ...

  8. ssm开发的一点小技巧

    一般使用反转工作生成基础bean如Items然后我们使用的实体类一般是基础bean的拓展类ItemsCustomer,继承自基础类,这个是为了方便对于表字段的更改生成的bean影响减低我们查询一般是使 ...

  9. 模仿下拉框datalist的jquery插件的一点小经验

    原本项目里是用h5的新属性data-list,但是这个下拉框的数据太多,而data-list似乎没有设置高度的地方,所以写了个小插件,期间也发现了一些bug,目前这个版本算是可以一用的版本,故写一下这 ...

随机推荐

  1. 关于C函数的参数个数的问题

    本文引自:http://c.biancheng.net/cpp/html/1592.html 一个函数的参数的数目没有明确的限制,但是参数过多(例如超过8个)显然是一种不可取的编程风格.参数的数目直接 ...

  2. Oracle11g R2学习系列 之八高级数据类型

    所谓的高级数据类型,就是大数据类型,即BCNB(助记词:BC牛逼)+XML数据类型. B:blob,用来存储可变长度的二进制数据. C:clob,主要用来存储可变长度的字符型数据,也就是其他数据库中提 ...

  3. oracle 数据库用户登录相关

    oracle 数据库的安装 : 一: 安装的时候可以设定解锁的用户  一般默认是解锁soctt用户和hr用户  : oracle的超级用户是sysdba这个用户在安装的时候也可以设置密码,一 般自己使 ...

  4. 在子jsp页面中调用父jsp中的function或父jsp调用子页面中的function

    项目场景: A.jsp中有一个window,window里嵌入了一个<iframe>,通过<iframe>引入了另一个页面B.jsp.在B.jsp中的一个function中需要 ...

  5. 转载----给JavaScript初学者的24条最佳实践

      给JavaScript初学者的24条最佳实践 1.使用 === 代替 == JavaScript 使用2种不同的等值运算符:===|!== 和 ==|!=,在比较操作中使用前者是最佳实践. “如果 ...

  6. Java语言中有4种访问修饰符

    转载:http://wuhaidong.iteye.com/blog/851754 Java语言中有4种访问修饰符 在Java语言中有4中访问修饰符:package(默认).private.publi ...

  7. Core Data (二)备

    序 上次只是说了三个Core Data栈基本类.这次准备介绍一下常用的类. NSManagedObject Core Data是一次底层数据封装成面向对象的技术.最直接的表现就是在SQLite里面的一 ...

  8. [POJ] 1064 Cable master (二分查找)

    题目地址:http://poj.org/problem?id=1064 有N条绳子,它们的长度分别为Ai,如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长. 二分绳子长度,然后验证即可 ...

  9. 开心菜鸟系列学习笔记--------初探Nodejs(了解篇)

    一Node.js开始学习了!    1) 输出hellow worlds   a.建一个js文件 hello.js 写 console.info('hellow world !!!');    进入终 ...

  10. Android开源库

    http://blog.csdn.net/xiaanming/article/details/9470223 一.兼容类库 ActionBarSherlock : Action Bar是Android ...