`

zoom:1的原理及用法

阅读更多

面试常问的一个问题zoom:1的作用,很多人都知道是清楚浮动,触发IE的haslayout属性

但是你知道zoom:1的工作原理和来龙去脉吗?

zoom:1确实帮我们解决了不少ie下的bug,但是它的原理,又有多少人知道呢?

所以下面来说一下它的来龙去脉

 

【简介】

zoom属性是IE浏览器的专有属性(亲测后新版chrome和Opera也支持),它可以设置或检索对象的缩放比例,也就是作用在于缩放元素,目前为止,wekbit系列、ie系列(ie6~ie11)均支持。

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

 

【适用场景】

经常用来解决一些ie特有的bug,但是写css时在什么地方要写它呢?

当IE遇到问题的时候,尤其是IE67,zoom: 1可以激活BFC,然后激活BFC后就可以解决好多问题

 

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

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

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

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

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

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

 

【拓展】具体关于hasLayout的知识点,我在后面文章里做了总结

 

 

 

总结:

①zoom属是IE浏览器的专有属性(这句话不太正确,因为新版主流浏览器也开始兼容zoom属性),但是记住火狐和老版本的webkit核心的浏览器任不支持这个属性。

②zoom现在已经被逐步标准化,出现在 CSS 3.0 规范草案中,并且通过css3里面的动画属性scale进行缩放。但zoom与scale两种css缩放存在差异,我在后面文章http://570109268.iteye.com/admin/blogs/2410148里做了总结

 

.

分享到:
评论

相关推荐

    Deep Zoom Composer Demo1

    2. **Deep Zoom原理**:学习如何利用Deep Zoom技术构建可平移和缩放的图像,包括切片概念、MultiscaleImage类的使用以及如何处理图像的缩放级别。 3. **Deep Zoom Composer的使用**:掌握如何导入图像、设置参数、...

    ZOOM-FFT.rar_ZOOM-FFT C_zoom fft_zoom-FFT_zoom-fft c_频谱

    在本文中,我们将深入探讨ZOOM-FFT的原理、实现方法以及其在频谱细化中的作用。 首先,我们要理解快速傅里叶变换(FFT)的基础。FFT是一种高效的计算离散傅里叶变换(DFT)的方法,能够将一个序列的时域信号转换为...

    cloud-zoom.js

    《cloud-zoom.js:网页图片放大插件的深入解析》 在网页设计中,为用户提供高质量的图片预览体验是一项重要的任务。Cloud-Zoom.js是一款流行...理解和掌握其工作原理和使用方法,对于提升网站的用户体验具有重要意义。

    前端项目-lg-zoom.zip

    在LightGallery众多模块中,"lg-zoom"是用于实现图片缩放功能的关键部分,本文将详细探讨这一模块的原理、使用方法以及相关技巧。 1. **LightGallery概述** LightGallery是一款基于JavaScript和CSS的开源库,旨在...

    svg-pan-zoom-master.rar

    在"svg-pan-zoom-master"文件夹中,你应该会找到多个示例文件,每个示例都展示了库的不同用法,比如如何响应用户事件,如何自定义平移和缩放行为,以及如何与其他前端框架(如jQuery)结合使用。通过研究这些示例,...

    清除浮动的几种方法PPT学习教案.pptx

    原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题。优点:浏览器支持好,不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)。缺点:代码...

    前端项目-zoom.js.zip

    - `README.md`:介绍库的基本信息、安装和使用方法。 在实际项目中,我们可以通过以下步骤集成`zoom.js`: 1. 下载并解压`前端项目-zoom.js.zip`,获取`zoom.js-master`文件夹。 2. 将`dist`目录下的`zoom.js`或`...

    基于Silverlight +VS2008实现的Deep Zoom Composer源码程序

    4. **Deep Zoom Composer工作流程**:了解原版Deep Zoom Composer的使用方法,包括导入图像,设置缩放级别,生成多分辨率图像格式(Multiresolution Image,MIR),以及导出用于Web展示的Deep Zoom容器文件(.dzi)...

    cloudzoom很给力的图片放大镜 (jquery插件)

    首先,CloudZoom的基本原理是利用CSS、JavaScript(尤其是jQuery库)以及一些图像处理技术来创建一个浮动的放大区域,当用户将鼠标悬停在主图片上时,该区域会显示放大的图像部分。这种效果使得用户能够在不离开页面...

    zoomimage.zip

    3. **初始化插件**:在文档加载完成后,使用jQuery选择器找到目标图片,并调用Zoomimage插件的初始化方法,例如`$(".zoom").zoomimage();` 4. **配置参数**:如果需要,可以通过传递参数对象来调整Zoomimage的行为...

    jquery图片放大镜效果鼠标移到图片放大CloudZoom

    1. **引入资源**:首先需要在页面中引入jQuery库和CloudZoom插件的JavaScript及CSS文件。 2. **HTML结构**:在HTML中设置一个`<img>`标签作为主图片,并添加一个空的`<div>`标签作为放大镜的容器。 3. **初始化插件*...

    scroll view zoom

    在这个特定的场景中,我们关注的是如何使用`UIScrollView` 对`UIImageView` 进行拖拉和缩放操作,这通常涉及到图片查看器或者照片应用的实现。我们将深入探讨`UIScrollView` 的基本概念、如何设置`UIImageView` 的...

    jquery zoom新浪微博点击小图查看大图代码

    - **初始化Zoom**:在JavaScript中调用$.fn.zoom()方法,设置相应的参数,如关联的小图和大图选择器,以及缩放比例等。 - **事件绑定**:通常使用`mouseenter`和`mouseleave`事件来控制放大镜的显示和隐藏。 4. *...

    jQuery点击图像居中放大插件Zoom.zip

    对于高级使用者,jQuery Zoom插件还提供了一些API方法,如`.zoom('enable')`用于开启放大功能,`.zoom('disable')`用于禁用,以及`.zoom('destroy')`用于完全移除插件。此外,插件还支持通过事件监听来响应用户的...

    zoom-earlybird:使用SSO(仅受支持的域)自动登录到Zoom并自动参加会议时间表的Python脚本

    **Zoom Earlybird: 使用SSO自动登录与会议调度的Python脚本** Zoom Earlybird是一款基于Python的实用脚本,旨在帮助用户使用...通过理解其背后的工作原理和使用方法,用户可以充分利用这个脚本来优化日常工作流程。

    WEBGIS原理与方法

    【标题】:“WEBGIS原理与方法” 【描述】:“WEBGIS原理与方法 是中山大学遥感与地理信息工程系关于万维网地理信息系统的技术讲解,探讨了如何将GIS与WWW结合,实现分布式、超媒体特性的地理信息共享与分析。” ...

    CSS技术:清除浮动的最优方法.pdf

    3. **zoom属性** - 在IE浏览器中,特别是在IE6和IE7版本中,`zoom:1;` 属性可以触发元素的hasLayout,这是一种类似于创建块格式化上下文的效果,从而清除浮动。文档提及了 `zoom:1;` 与 `overflow:auto;` 结合使用,...

    jQuery zoom图片弹出层插件简单的图片相册弹出层窗口

    3. **初始化插件**:在JavaScript代码中,使用`$(document).ready()`确保页面加载完成后,调用`.zoom()`方法对图片元素进行初始化。 4. **配置参数**:可以设置一些可选参数,如放大倍数、放大镜的大小、过渡效果等...

    图像按倍数缩放 Matlab程序 (Zoom)

    理解并掌握这些脚本的原理和使用方法,能够帮助我们在处理图像时更加得心应手,同时也为更复杂的图像处理任务打下基础。在实践中,我们还可以根据具体需求进行调整,例如增加边界处理、支持不同格式的图像输入,或者...

    plot -zoom and fft

    `readme_08.pdf`可能是项目说明文档,包含有关代码的详细信息、使用方法和注意事项。阅读这份文档可以帮助我们更好地理解整个GUI的工作原理。 为了实现这些功能,开发者通常会创建回调函数来响应GUI组件(如按钮和...

Global site tag (gtag.js) - Google Analytics