一. zoom特性
1. zoom是IE的私有属性,但目前除Firefox不支持外,其他浏览器支持尚好.
2.定义:
zoom即变焦,可改变元素尺寸,属于真实尺寸.zoom:百分值/数值/normal(即1);
简单示例:
二. transform: scale
属于css3规范,IE9+的现代浏览器全部支持.
语法为:transform: scale(x,y);只支持数值(包括负值),不支持百分比;
衍生的属性值包括scaleX,scaleY;
简单示例:
三.对比差异
- zoom的缩放是相对于左上角的;而scale默认是居中缩放;
- zoom的缩放改变了元素占据的空间大小;而scale的缩放占据的原始尺寸不变,页面布局不会发生变化;
- zoom和scale对元素的渲染计算方法可能有差异:zoom锐利,scale模糊
简单示例:
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>Zoom Test</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
} .wrap {
width: 200px;
margin: 20px;
border: 1px solid #ccc;
} .wrap img {
width: 100%;
} .zoom-large:hover {
zoom: 1.2;
/** 从左上方开始放大 */
} .scale-large:hover {
transform: scale(1.2, 1.2);
/** 从中心点开始放大 */
} .zoom-small:hover {
zoom: 0.7;
} .scale-small:hover {
transform: scale(0.7);
}
</style>
</head> <body>
<div class="wrap zoom-large">
<img src="demo.jpg" alt="">
</div>
<div class="wrap scale-large">
<img src="demo.jpg" alt="">
</div>
<div class="wrap zoom-small">
<p>呜噜噜噜</p><!-- 此处字体scale缩小会变锐利-->
<img src="demo.jpg" alt="">
</div>
<div class="wrap scale-small">
<p>呜噜噜噜</p><!-- 此处字体scale缩小会变模糊-->
<img src="demo.jpg" alt="">
</div>
</body> </html>
四:特别说明
chrome浏览器上同时使用zoom和scale,缩放效果会叠加.
Over~