CSS mask-size 属性

CSS mask-size 语法

在 CSS 中,mask-size 属性用于定义蒙版图像的尺寸大小。它的行为与 background-size 属性完全相同。

语法:

mask-size: 数值或关键字;

说明:

mask-size 属性的取值有 2 种。

  • 数值:比如像素值(px)、百分比(%)、em、rem 等。此时的 mask-size 可以是 1 个数值,也可以是 2 个数值。
    • 如果是 1 个数值,则该数值表示宽度,而高度会自动设置为 auto(即保持图像原有的宽高比)
    • 如果是 2 个数值,则第 1 个数值表示宽度,第 2 个数值表示高度。
  • 关键字:常用取值如下表所示。
mask-size 属性取值
取值 说明
auto(默认值) 保持蒙版图像原尺寸
cover 即 “覆盖”,表示将蒙版图像等比缩放来填满整个元素
contain 即 “容纳”,表示将蒙版图像等比缩放至某一边紧贴元素边沿为止

mask-image 属性中定义了多个蒙版图像时,mask-size 属性也应提供对应数量的尺寸值,并用英文逗号分隔,这些值会按顺序应用于各个蒙版层。

mask-image: url("test1.png"), url("test2.png");
mask-size: cover, 50% auto;     /* test1.png 覆盖,test2.png 宽度为 50% 且高度自动 */

对于 mask-size 属性,小伙伴们要清楚以下几点。

  • mask-size 属性适用于所有元素。
  • 如果 mask-repeat 设置为 repeat、repeat-x、repeat-y、space 或 round,并且 mask-size 不为 auto,则 mask-size 将定义每个重复实例的尺寸。

注意: 为了更好的浏览器兼容性,建议在使用时添加浏览器前缀(如 -webkit-mask-size),尤其是在旧版浏览器中。

CSS mask-size 摘要

属于 CSS 蒙版属性
使用频率
是否继承
默认值 auto
兼容性 查看
官方文档 查看
MDN 查看

CSS mask-size 示例

接下来,我们通过几个简单的例子来讲解一下 CSS mask-size 属性是如何使用的。

示例 1:mask-size 取值是 “数值”

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        .container {
            display: inline-block;
            margin: 20px;
            border: 1px dashed gray;
        }
        .box {
            display: inline-block;
            width: 200px;
            height: 200px;

            /* 定义背景图片 */
            background-image: url("imgs/bird.jpg");
            background-size: cover;

            /* 定义蒙版图片 */
            mask-image: url("imgs/star.svg");
            mask-position: center center;
            mask-repeat: no-repeat;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="box"></div>
    </div>
</body>
</html>

页面效果如下图所示。

mask-size 取值是 “数值”

分析:

如果没有主动设置 mask-size 属性,那么蒙版图片就会使用原始尺寸(该图片原始尺寸为 25px × 25px)。在这个例子中,如果我们为 .box 元素添加 mask-size: 50px 50px;,此时页面效果如下图所示。

mask-size: 50px 50px; 效果

如果我们为 .box 元素添加 mask-size: 100px 100px;,此时页面效果如下图所示。

mask-size: 100px 100px; 效果

示例 2:mask-size 取值是 “关键字”

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        .container {
            display: inline-block;
            margin: 20px;
            border: 1px dashed gray;
        }
        .box {
            display: inline-block;
            width: 200px;
            height: 200px;

            /* 定义背景图片 */
            background-image: url("imgs/bird.jpg");
            background-size: cover;

            /* 定义蒙版图片 */
            mask-image: url("imgs/star.svg");
            mask-position: center center;
            mask-repeat: no-repeat;
            mask-size: cover;
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="box"></div>
    </div>
</body>
</html>

页面效果如下图所示。

mask-size 取值是 “关键字”

分析:

mask-size: cover; 表示将蒙版图片等比缩放来填满整个元素。

mask 是一个复合属性

在 CSS 中,mask 是一个复合属性,它包含很多子属性(如下表所示)。

mask 子属性
子属性 说明
mask-image 指定用作蒙版的图像
mask-mode 定义蒙版图像的渲染模式
mask-repeat 定义蒙版图像的重复方式
mask-position 定义蒙版图像的起始位置
mask-size 定义蒙版图像的尺寸大小
mask-origin 定义蒙版图像的定位原点
mask-clip 定义蒙版图像的裁剪区域
mask-composite 定义多个蒙版图像之间的合成模式

上一篇: mask-position

下一篇: mask-origin

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号