CSS的zoom属性在控制元素的放大级别方面非常有用。

zoom是CSS的非标准属性,建议使用transform:scale()函数来实现相同的效果。

可能的值

  • normal:指定元素应以其正常大小呈现。

  • reset:指定元素不应取消(放大),除非用户应用非基于捏合的缩放。不推荐,而是使用未设置的值。

  • <percentage>:任何称为缩放系数的百分比值。

    • 值等于 100% 是正常的。

    • 值大于 100% 意味着元素应该放大。

    • 值小于 100% 意味着元素应该缩小。

  • <number>:与百分比值相对应的任何数值。例如:1.0 = 100% = normal。

    • 值等于 1.0 是正常的。

    • 值大于 1.0 意味着元素应该放大。

    • 值小于 1.0 表示元素应该缩小。

适用范围

所有 HTML 元素。

DOM 语法

object.style.zoom = "normal | reset | <number> | <percentage>"; 

CSS zoom: normal

这里是一个示例:

<html>
<style>
   p.normal {
      zoom: normal;
   }
   p.percent {
      zoom: 170%;
   }
   p.number {
      zoom: 4;
   }
   p.unset {
      zoom: unset;
   }
</style>
<head>
</head>
<body>
   <p class="normal">Normal size</p>
   <p class="percent">Zoom 百分比</p>
   <p class="number">Zoom 数字</p>
   <p class="unset">Zoom settings reverted.</p>
</body>
</html> 

CSS zoom: <percentage> 

这是另一个示例:

<html>
<head>
<style>
   div.box {
      height: 50px;
      width: 50px;
      display: inline-block;
      padding: 5px;
      border: 1px solid black;
   }
   div#m {
      background-color: orange;
      zoom: 200%;
   }
   div#n {
      background-color: lavender;
      zoom: 1.5;
   }
   div#o {
      background-color: palevioletred;
      zoom: normal;
   }
</style>
</head>
<body>
   <div id="m" class="box"></div>
   <div id="n" class="box"></div>
   <div id="o" class="box"></div>
</body>
</html> 

CSS zoom: 数字

这里是一个示例,其中 h1元素在悬停时缩放:

<html>
<head>
<style>
   p {
      border: 1px solid red;
   }
   p.percent {
      zoom: 170%;
   }
   p.number {
      zoom: 4;
   }
   h1:hover {
      zoom: 250%;
      text-decoration-line: underline;
   }
</style>
</head>
<body>
   <h1>Hover to Zoom</h1>
   <p class="percent">Zoom in percentage</p>
   <p class="number">Zoom in number</p>
</body>
</html> 

CSS zoom: 动画

这是一个示例,其中动画在悬停时与缩放一起添加:

<html>
<head>
<style>
   div.box {
      width: 25px;
      height: 25px;
      vertical-align: middle;
      display: inline-block;
      transition: transform .5s;
      padding: 10px;
   }
   div#a {
      background-color: rgb(58, 220, 22);
      zoom: normal;
   }
   div#b {
      background-color: rgb(239, 86, 137);
      zoom: 200%;
   }
   div#c {
      background-color: rgb(223, 217, 44);
      zoom: 2.9;
   }
   div.box:hover {
      transform: scale(1.5);
   }
</style>
</head>
<body>
   <h1>悬停时添加动画</h1>
   <div id="a" class="box"></div>
   <div id="b" class="box"></div>
   <div id="c" class="box"></div>
</body>
</html>