关于"zoom“ 的一点小认识
最早接触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“ 的一点小认识的更多相关文章
- 关于win8开发的一点小总结
我今天做画面的时候,发现了一点小问题. 我在xmal文件里面加了一个CheckBox控件,设置IsChecked属性为True,并添加了Checked事件.Checked事件里面有对另外一个TextB ...
- 关于PHP魔术方法__call的一点小发现
好久没有上博客园写文章了,今晚终于有点空了,就来写一下昨天的一点小发现. 我自己所知,C++,Java的面向对象都有多态的特点,而PHP没有,但PHP可以通过继承链方法的重写来实现多态的属性.而魔术方 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-8asp.net core 内置DI容器(DependencyInjection,控制翻转)的一点小理解
asp.net core 内置DI容器的一点小理解 DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IO ...
- C与C++在形參的一点小差别
先看一下以下的代码: int fun(a,b) int a; int b; { return 10; } void main(int argc, char ** argv) { fun(10); re ...
- BUI Webapp用于项目中的一点小心得
接触BUI也有一段时间,也用在了移动端的项目开发中,总的来说,该框架用起来也挺灵活的,控件可以自由定制,前提是自己能认真地学习该框架的api,因为api里面说的东西比较详细,如果没有仔细看的,可能有些 ...
- 这几天帮一个朋友解决了一点小问题(RF的有些小问题及解决过程)
最近涉猎自动化太少了,以至于都不经常更新了.最近一个朋友在做移动端自动化的时候遇到了一些小问题来找我解决.本人也不是很精通,只是接触的时间长了一点了.下面就是一些问题和解决过程: 1.她刚过来的时候, ...
- 深入剖析Nginx一点小笔记
前几天在图书馆看书,恰好看到这本<深入剖析nginx>,花了快一周的时间看完了这本书,写点笔记心得便于以后复习. 以前对nginx的认识就只是停留在一个反向代理服务器上.百度了一下ngin ...
- ssm开发的一点小技巧
一般使用反转工作生成基础bean如Items然后我们使用的实体类一般是基础bean的拓展类ItemsCustomer,继承自基础类,这个是为了方便对于表字段的更改生成的bean影响减低我们查询一般是使 ...
- 模仿下拉框datalist的jquery插件的一点小经验
原本项目里是用h5的新属性data-list,但是这个下拉框的数据太多,而data-list似乎没有设置高度的地方,所以写了个小插件,期间也发现了一些bug,目前这个版本算是可以一用的版本,故写一下这 ...
随机推荐
- VC中窗口ID,句柄,指针三者相互转换函数【转】
ID--HANDLE--HWND三者之间的互相转换id->句柄 hWnd = ::GetDlgItem(hParentWnd,id);id->指针 CWnd:: ...
- SharpZipLib 压缩文档下载
using ICSharpCode.SharpZipLib.Zip; Response.Clear(); Response.ClearContent(); Response.ClearHeaders( ...
- jade中mixin的使用
h2 mixin mixin lesson p jade study +lesson mixin study(name,courses) p #{name} ul.courses each cours ...
- jQuery插件学习(一)
由于项目开发需要,经常会用到一些jquery插件,但网上已有的插件常常又不能100%满足业务需求,所以就想自己能看懂插件的代码,进行一些功能上的改动和补充,或者能自己自定义插件就更好了.所以这段时间会 ...
- js各种进制数之间的转换
计算机中常用的进制数有二进制.八进制.十进制.十六进制 一.十进制 to 其他 var x = 10; // 或定义其他值均可 x.toString(n); // n 代表要转换到的进制,比如n可以为 ...
- Effective Java2读书笔记-类和接口(五)
第21条:用函数对象表示策略 这一条其实也没说啥,就是策略模式.碰到这种场景时,定义一个策略接口,然后不同策略子类实现它,主类包含这个接口的引用就可以了. 第22条:优先考虑静态成员类 嵌套类是指被定 ...
- LeetCode_String to Integer (atoi)
Implement atoi to convert a string to an integer. int atoi (const char * str); Convert string to int ...
- ActiveX in QT
http://doc.qt.io/qt-4.8/activeqt.htmlhttp://doc.qt.io/qt-5/activeqt-index.html
- [jumping to the gate] 娱乐向setjmp
转载:http://tieba.baidu.com/p/1393753521 灌水的时候从goto一路拐到了setjmp, 顺便也试了试貌似这东西确实是没有析构效果的.之前并没有看过setjmp的实现 ...
- [科普]MinGW vs MinGW-W64及其它
转载:http://tieba.baidu.com/p/3186234212?pid=54372018139&cid=#54372018139 这里也转一下吧. 部分参照备忘录原文: bitb ...