CSS 属性

CSS 中的 CSS mask-size 属性用于指定使用 mask-image 应用于元素的遮罩图像的大小。它允许您控制遮罩的尺寸,确定其在元素内的缩放或显示方式。

如果您应用 mask 设置 mask-size 属性后,将 mask-size 属性设置为元素的简写属性,mask-size 属性将重置为其默认值。

属性值

  • contain: 将图像大小调整为最大尺寸,同时保持原始纵横比,而不会被拉伸或挤压。

  • cover: 该值与 contains 相反。将图像缩放到最大尺寸,同时保持纵横比,确保图像不会被压扁。当图像和容器具有不同尺寸时,图像会在左/右或上/下侧被剪切。

  • <length>: <length> 值将遮罩图像调整为指定的值方面。不允许使用负长度。

  • <percentage>: <percentage> 值根据掩模定位区域的指定百分比(由掩模原点确定)调整相对于尺寸的掩模图像财产。不允许使用负百分比。

  • auto: 自动值在水平和垂直方向上按比例调整遮罩图像大小,同时保持其固有比例。

适用范围

所有元素。在 SVG 中,它适用于不包括 <defs> 元素和所有图形元素的容器元素。

语法

mask-size: cover |contain | <length> | <percentage> | auto; 

遮罩图像的渲染大小计算如下:

  • 如果给定了两个蒙版大小组件且不是自动的: 蒙版图像将以所需的大小显示。

  • 当遮罩尺寸设置为 cover 或 contains 时: 显示图像,同时在遮罩定位区域内的最大尺寸下保留其固有比例。当图像中没有固有比例时,将按照遮罩定位区域的尺寸显示。

  • 如果遮罩大小设置为 auto 或 auto auto: 如果图像具有内在维度,它是在这些维度上渲染的;否则,它与掩模定位区域对齐。如果图像没有尺寸但有比例,则将其渲染为已使用"包含"。如果图像具有一个固有尺寸和比例,则使用该尺寸和指定的比例进行渲染。图像具有单一固有尺寸,未定义比例,并且与遮罩定位区域对齐。

  • 如果遮罩大小包含一个自动组件和一个非自动组件: 对于具有内在比例的图像,使用指定的维度进行渲染,并根据内在比例计算其他维度。如果图像中没有固有比例,则使用给定尺寸作为该尺寸。对于其他尺寸,请使用图像的固有尺寸(如果可用)。如果没有可用的固有尺寸,则使用掩模定位区域的相应尺寸。

CSS mask-size: contains

以下示例演示了使用 -webkit-mask-size: contains 属性,其中遮罩图像适合容器,同时保持其纵横比 -

<html>
<head>
<style>
   .mask-image-contain {
      width: 200px;
      height: 150px;
      background-image: url(/css/images/pink-flower.jpg);
      background-size: contain;
      -webkit-mask-image: url(/css/images/heart.png);
      -webkit-mask-size: contain;
   }
</style>
</head>
<body>
   <h2>Orignal Image</h2>
   <img src="/css/images/pink-flower.jpg" width="200px" height="200px">
   <h2>mask-size: contain</h2>
   <div class="mask-image-contain"></div>
</body>
</html> 

CSS mask-size: cover

以下示例演示 -webkit-mask-size: cover 属性的使用,该属性确保遮罩图像完全覆盖背景 -

<html>
<head>
<style>
   .mask-image-cover {
      width: 200px;
      height: 200px;
      background-image: url(/css/images/pink-flower.jpg);
      background-size: cover;
      -webkit-mask-image: url(/css/images/heart.png);
      -webkit-mask-size: cover;
   }
</style>
</head>
<body>
   <h2>Orignal Image</h2>
   <img src="/css/images/pink-flower.jpg" width="200px" height="200px">
   <h2>mask-size: cover</h2>
   <div class="mask-image-cover"></div>
</body>
</html> 

CSS mask-size: <length>

以下示例演示 -webkit-mask-size: 100px 100px 属性使用长度值设置遮罩图像的大小。遮罩图像将重复以覆盖整个背景 -

<html>
<head>
<style>
   .mask-image-length {
      width: 200px;
      height: 200px;
      background-image: url(/css/images/pink-flower.jpg);
      background-size: cover;
      -webkit-mask-image: url(/css/images/heart.png);
      -webkit-mask-size: 100px 100px;
   }
</style>
</head>
<body>
   <h2>Orignal Image</h2>
   <img src="/css/images/pink-flower.jpg" width="200px" height="200px">
   <h2>mask-size: 100px 100px</h2>
   <div class="mask-image-length"></div>
</body>
</html> 

CSS mask-size: <percentage>

以下示例演示 -webkit-mask-size: 100% 100%属性设置遮罩图像的大小以覆盖元素的整个大小 -

<html>
<head>
<style>
   .mask-image-length {
      width: 200px;
      height: 200px;
      background-image: url(/css/images/pink-flower.jpg);
      background-size: cover;
      -webkit-mask-image: url(/css/images/heart.png);
      -webkit-mask-size: 100% 100%;
   }
</style>
</head>
<body>
   <h2>Orignal Image</h2>
   <img src="/css/images/pink-flower.jpg" width="200px" height="200px">
   <h2>mask-size: 100% 100%</h2>
   <div class="mask-image-length"></div>
</body>
</html> 

CSS mask-size: auto 

以下示例演示了 -webkit-mask-size:auto 属性将自动调整遮罩图像的大小以适合元素 -

<html>
<head>
<style>
   .mask-image-auto {
      width: 200px;
      height: 200px;
      background-image: url(/css/images/pink-flower.jpg);
      background-size: cover;
      -webkit-mask-image: url(/css/images/heart.png);
      -webkit-mask-size: auto;
   }
</style>
</head>
<body>
   <h2>Orignal Image</h2>
   <img src="/css/images/pink-flower.jpg" width="200px" height="200px">
   <h2>mask-size: auto</h2>
   <div class="mask-image-auto"></div>
</body>
</html>