`

zoom和scale的区别

    博客分类:
  • CSS
CSS 
阅读更多

【原理】

zoom和scale都是用于对元素的缩放,但两者存在诸多差异

①兼容问题;

②渲染顺序及对布局(盒子)影响;

 

先说一下兼容问题:

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

而scale属性是在 CSS 3.0 规范草案中新出的对zoom的标准化,通过css3里面的动画属性scale进行缩放

 

下面说下渲染顺序及对布局(盒子)影响:

【通俗理解】就是zoom是先渲染(缩放)后布局,可能影响盒子计算;而scale是先布局后渲染(缩放),故而不会影响布局(盒子计算)

具体表现为:

zoom缩放会将元素保持在左上角,而scale默认是中间位置,可以通过transform-origin来设置

另外他们执行的渲染顺序也不同zoom可能影响到盒子的计算

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>zoom与scale区别</title>
    <style>
        *{
            margin:0;
            padding:0;
            font-size:12px;
        }
        div {
            width:300px;height:100px;
            border:1px solid red;
            font-size:0px;
            line-height:100px;
            margin:10px;
        }
        span {
            display:inline-block;
            height:80px;width:200px;background:blue;
            vertical-align:middle;
            overflow:hidden;
        }
    </style>
</head>

<body>
<div>
    1.<span style="-webkit-transform:scale(0.5);"></span>
</div>
<div>
  2.<span style="-webkit-transform-origin:top left;-webkit-transform:scale(0.5);"></span>
</div>
<div>
  3.<span style="zoom:0.5;">
  </span>
</div>
</body>
</html>

 

下面看效果吧:

这里写图片描述

【稍微解释一下】

   第一个测试中只设置了scale,于是元素以自己的中心为基点做缩放;

   第二个测试中不仅设置了scale,还有origin来将缩放的基点设置到左上角,因此变化结束后元素呆在了左上角。虽然容器设置了和高度一样的行高,当它并没有在容器里居中,因为scale是先布局后变换的,变换不会对布局产生影响;

   最后一个测试是使用zoom,虽然Firefox上不支持,但这是个很古老的特性了。它和第二个测试的区别是它先缩放,后计算布局。所以在例子中它得到了垂直居中效果

 

 

 

 

 

 

 

 

 

.

 

分享到:
评论

相关推荐

    CSS中的zoom属性和scale属性的用法及区别

    Scale属性scale属性的取值为2个,它本身其实相当于一个函数,因为它的写法就和函数一样:scale();scale(x);scale(x,y);1、scale(x,y) 对元素进行缩放X表示水平方向缩放的倍数 Y表示垂直方向的缩放倍数Y是一个

    Zoom to scale(arcgis server 9.3)

    除了使用ADF,Esri还提供了其他API,如JavaScript API、Flex API和Silverlight API,它们同样支持“Zoom to scale”功能,但实现方式会有所不同,更适合Web开发环境。 总的来说,“Zoom to scale”在ArcGIS Server ...

    多文档界面(MDI)源代码 zoom_scale.zip

    多文档界面(MDI)源代码 zoom_scale.zip

    多文档界面(MDI)VC源代码:zoom_scale

    在Windows编程领域,多文档界面(Multiple Document ...以上就是关于MDI应用中实现“zoom_scale”功能的一些核心概念和技术细节。通过理解和应用这些知识点,开发者可以创建出具备灵活缩放功能的多文档界面应用程序。

    scroll view zoom

    缩放(pinching)功能主要依赖于`UIScrollView` 的`zoomScale` 属性和手势识别器(Gesture Recognizer)。`zoomScale` 默认值为1,表示没有缩放。当用户执行捏合手势时,`UIScrollView` 的代理方法`...

    ZoomableView:实现 Zoom、Scale、Scroll、Fling 的基本视图

    可缩放视图实现 Zoom、Scale、Scroll、Fling 的基本视图如何 : 在您的布局中插入视图: &lt; RelativeLayout xss=removed xss=removed xss=removed xss=removed&gt; &lt; ...

    zoom实现网页缩放.zip

    例如,`transform: scale(x)`可以用来缩放元素,其中`x`是一个介于0和1之间的值,表示相对于原尺寸的缩放比例。如果希望在鼠标悬停时实现图片放大效果,可以使用`:hover`伪类结合`transition`属性来平滑过渡。 除了...

    页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)

    可以使用用浮点数和百分比来定义缩放比例。 zoom的浏览器兼容性:http://caniuse.com/#search=zoom zoom的兼容性:firefox 全系列不支持。 (2)transform transform:scale(1.1,1.1); scale(x,y) 定义 2D 缩放转换...

    前端项目-lg-zoom.zip

    - **应用变换**:使用CSS3的transform属性改变图片的scale和translate值,实现平滑的缩放效果。 - **动画过渡**:利用transition属性设定动画过渡时间,让缩放过程看起来更自然。 4. **配置与使用** 要启用lg-...

    zoom-info.rar_zoom

    然后,我们可以应用这个比例到`transform: scale()`CSS属性上。同时,为了保持图像的清晰度,应使用CSS的`backface-visibility`和`transform-style`属性确保图像在缩放时不会模糊。 在“zoom-info”文件中,可能...

    TapToZoom例子学习

    同时,为了满足不同设备和屏幕尺寸的需求,TapToZoom通常需要适配各种屏幕比例和分辨率,确保在任何设备上都能正常工作。 通过学习TapToZoom,不仅可以提升用户体验,还能加深对触摸事件处理和图形变换的理解。在...

    Android缩放动画anim_zoom

    2. **&lt;scale&gt;标签**:在`anim_zoom_in.xml`中,主要的动画元素是一个`&lt;scale&gt;`标签。这个标签用于指定元素的缩放效果。它的基本结构如下: ``` &lt;scale android:fromXScale="float" android:toXScale="float" ...

    WPF_Image_Pan_and_Zoom

    "WPF_Image_Pan_and_Zoom"这一主题聚焦于如何在WPF应用中实现图像的平移和缩放功能,这对于创建交互式的图像查看器或地图应用程序至关重要。以下将详细讲解实现这一功能的关键技术和步骤。 首先,我们需要了解WPF中...

    slideImage&zoom.zip

    在IT行业中,网页动态效果和用户体验的提升是至关重要的,其中滑动图片(SlideImage)和缩放(Zoom)功能尤为常见。"slideImage&zoom.zip"是一个包含这两个功能演示的压缩包,主要针对使用jQuery库来实现这些效果。...

    scrollview zoom图片放大和缩放

    在`ScaleGestureDetector`的`onScale()`方法中,根据缩放因子调整图片的缩放比例。 3. **设置最大和最小缩放级别**: 为了防止图片过小或过大,需要设定一个最小和最大缩放级别。通常,最小缩放级别为1(原大小)...

    image_zoom.rar_android 可拖动_zoom

    同样,我们需要创建一个子类并重写`onScaleBegin()`, `onScale()`, 和`onScaleEnd()`方法来控制缩放行为。 2. **图片矩阵操作**: 当用户进行拖动或缩放时,我们需要修改`ImageView`内部的`Matrix`对象来改变图片...

    react-native-zoom-scroll:RN ZoomScroll组件

    可以滚动,放大和缩小的图像列表。 放大时,可以拖动图像。 也可以传递将在滚动列表的每个图像上呈现的“图钉”数组。 点击图片观看演示视频 用法 require react-native-zoom-scroll并使用标记,将图像数组作为data...

    ngx-pinch-zoom:模块提供了使用触摸屏上的手势进行图像缩放和定位的功能

    夹角变焦 该模块提供了使用触摸屏上的手势进行图像放大,缩小和定位的机会。...meta name =“ viewport” content =“ width = device-width,initial-scale = 1,maximum-scale = 1.0,user-scala

Global site tag (gtag.js) - Google Analytics