zoom:1的常见作用

zoom是IE专用属性,firefox等是不支持的。它的本来作用是设置或检索对象的缩放比例,但这作用几乎用不到。

可以让网页实现IE7中的放大缩小功能。比如你想让你的网页缩小为原来的一半,那么就在body中加入style="zoom:0.5"

设置zoom:1可以在IE6下清除浮动、解决margin导致的重叠等问题。

通常,当浮动子元素导致父元素塌陷的时候,只要给父元素加上overflow: hidden;来解决,但是对于IE不行,需要触发其hasLayout属性才可以。

zoom:1就是IE6 专用的 触发 haslayout 属性的。hasLayout是IE特有的一个属性。很多的IE下的css bug都与其息息相关。在IE中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元素来计算尺寸和组织内容。当一个元素的hasLayout属性值为true时,它负责对自己和可能的子孙元素进行尺寸计算和定位。

hasLayout对于内联元素也可以有效果,当内联元素的hasLayout为true的时候,可以给这个内联元素设定高度和宽度并得到期望的效果。具体关于hasLayout的知识点,可以另外搜索。

通常,在给低版本的IE做兼容的时候会用到zoom:1。例如,清除浮动的时候,我们会这么写

.clearfix::after{content: ".";clear: both;display: block;visibility: hidden;overflow: hidden;height: 0;*zoom:1}

为了防止低版本的IE浏览器不支持after选择器或者某些属性,在最后加上zoom:1来清除浮动。

为了实现inline-block的兼容的时候,我们会这么写:{display: inline-block;*display:inline;*zoom:1;}因为在IE6、IE7下,只有设置在默认显示方式为inline的元素上才会生效。前面说过,当内联元素的hasLayout为true的时候,可以给这个内联元素设定高度和宽度并得到期望的效果,所以这样做可以达到兼容inline-block的效果。

这里还要补充一点,为什么*display:inline;*zoom:1;前面有*,*放在css属性前面,表示这个属性仅仅应用到Internet Explorer 7 以及以下版本。因为Internet Explorer 版本 7 以及以下承认非字母数字(除了下划线)前缀的属性。所以这里,IE7以上的版本作用的是display: inline-block;而在IE7及以下的版本中作用的是display:inline;zoom:1。

原文地址:https://www.cnblogs.com/zhuochong/p/11712176.html

时间: 2024-10-18 05:40:12

zoom:1的常见作用的相关文章

Intent的各种常见作用

1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的开始.比较常用. Input:nothing Output:nothing <activity android:name=".Main" android:label="@string/app_name">   <intent-filter>         <action android:nam

android 常见 action 使用

本文介绍Android中Intent的各种常见作用. 1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的开始.比较常用. Input:nothing Output:nothing <activity android:name=".Main" android:label="@string/app_name"> <intent-filter> <a

计算机网络常见

计算机网络无疑是重中之重,尤记得我当时秋招,面某家大厂,进入了二面,遇到一个不会java的面试官(我运气真好),没办法往我擅长的方向引导,当然他也很无奈(毕竟我答得真不算好),他问了我很多基础尤其是计算机网络,于是我这种基本功不是太好的便在他的面前暴露无遗.现在想想真是相当遗憾.好了废话不多说,开始学习. 网络分层 OSI七层协议: 物理层 数据链路层 网络层        传输层        会话层 表示层 应用层 TCP/IP四层协议: 网络接口层 网纪层 运输层 应用层 五层协议: 物理

数组、字符串、集合

数组与集合的转换.数组与字符串的转换 ========数组变集合 String[] arr = {"abc","cc","kkkk"}; //把数组变成list集合有什么好处? /* 可以使用集合的思想和方法来操作数组中的元素. 注意:将数组变成集合,不可以使用集合的增删方法. 因为数组的长度是固定. contains. get indexOf() subList(); 如果你增删.那么会产生UnsupportedOperationExcepti

基本数据类型对象包装类

byte Byte shor Short int Integer long Long float Float double Double char Character 基本数据类型包装类对象的最常见作用 就是用于基本数据类型和字符串类型之间做转换 基本数据类型转成字符串 基本数据类型+"" 基本数据类型.toString(基本数据类型值) 如:Integer.toString(34);//将34整数变成"34" 字符串转成基本数据类型 xxx a = Xxx.par

Runtime

参考资料:http://www.jianshu.com/p/19f280afcb24 类和对象 Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等. 这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码.对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以正常的

基本数据类型对象包装(Integer等)

基本数据类型 包装类 byte Byte short             Short int   Integer long Long boolean Boolean float              Float double Double char             Character 基本数据类型对象包装的常见作用就是: 实现基本数据类型和字符串之间的转换. 基本数据类型转换成字符串: 基本数据类型+""  基本数据类型.toString(基本数据类型值); 如: In

[Java] 可运行 jar 记录

在 Eclipse 上,通过 Export 选择 Java 下的 Runnable JAR file ,可以将项目导出一个可执行的 jar 包. 例子如下 1. Eclipse 项目只有一个文件 main/App.java package main; public class App { public static void main(String[] args) { System.out.println(" - - "); } } 2. 对着项目右击,Export -> Run

Effective C++ 条款45 运用成员函数模板接受所有兼容类型

1. "智能指针"是行为像指针的对象,但它们能提供指针没有的功能:shared_ptr,weak_ptr,auto_ptr(见条款13)实现对堆内存的自动管理,STL的迭代器实现对整个容器的遍历等. 真正的指针的优势在于支持继承层次中派生类指针向基类指针的转换(当然标准库shared_ptr,weak_ptr,auto_ptr等已实现). 2. 由于同一template的不同具现体之间没有直接联系,也就是说对于自定义的智能指针(假设名为SmartPtr),如果不额外采取手段支持基层层次