CSS background-clip 属性

CSS background-clip 语法

在 CSS 中,background-clip 属性用于定义背景(包括背景颜色背景图片)的裁剪区域。

语法:

background-clip: 关键字;

说明:

background-clip 的取值有 3 种,如下表所示。

background-clip 属性取值
取值 说明
border-box(默认值) 从边框开启裁剪
padding-box 从内边距开始裁剪
content-box 从内容区开始裁剪

边框、内边距、内容区都是盒子模型的概念,如下图所示。

CSS 盒子模型

background-clip 还有一种特殊取值 “text”,此时背景被裁剪到前景文本的形状。这需要浏览器支持,并且通常需要配合 color: transparent; 或其他方式使文本本身透明,才能看到背景。

注意: background-clip 属性只有用于具有背景的元素才会生效,即设置了 background-imagebackground-color 的元素。

CSS background-clip 摘要

属于 CSS 背景
使用频率
是否继承
默认值 border-box
兼容性 查看
官方文档 查看
MDN 查看

CSS background-clip 示例

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

示例 1:background-clip 基本用法

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 150px;
            height: 150px;
            padding: 20px;
            border: 20px dashed red;
            background-color: skyblue;
            background-clip: border-box;
        }
    </style>
</head>
<body>
    <div>绿叶网绿叶网绿叶网绿叶网绿叶网绿叶网绿叶网绿叶网绿叶网绿叶网绿叶网</div>
</body>
</html>

页面效果如下图所示。

background-clip 基本用法

分析:

如果使用的是 background-clip: padding-box;,此时页面效果如下图所示。

background-clip: padding-box;

如果使用的是 background-clip: content-box;,此时页面效果如下图所示。

background-clip: content-box;

示例 2:background-clip 实现渐变文字

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            display: inline-block;
            font-size: 30px;
            font-weight: bold;
            color: transparent;  /* 使文字颜色透明 */
            background-image: linear-gradient(to right, red, orange, yellow, green);  /* 设置渐变背景 */
            -webkit-background-clip: text;           /* 将背景裁剪到文本 */
            background-clip: text;                   /* 标准属性 */
            -webkit-text-fill-color: transparent;    /* WebKit 浏览器文字填充色透明 */
        }
    </style>
</head>
<body>
    <div>绿叶网 - 为好教程,全力以赴。</div>
</body>
</html>

页面效果如下图所示。

background-clip 实现渐变文字

分析:

这个例子实现了渐变文字的效果。首先我们需要使用 color: transparent; 将文字颜色设置为透明(这样才会显示出背景),并使用 background-image 属性设置了一个线性渐变。

然后将 background-clip 设置为 text,这样背景渐变就会被裁剪到文本的形状,并填充为文字形状。注意,为了更好的兼容性,这里同时使用了 -webkit-background-clip 和 -webkit-text-fill-color。

提示: 可能小伙伴们也发现了,绿叶网有不少渐变文字,其实这也是使用 background-clip 属性来实现的。

上一篇: background-size

下一篇: background-origin

给站长反馈

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

邮箱:lvyenet@vip.qq.com

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