CSS3怎么为文字添加背景?

2022年6月9日11:57:22

这两天在写官网,标题标语之类的文字都是带有流光溢、炫酷图案的文字

大致就像苹果官网上的那些slogan吧,可不是简单的渐变色之类哦

但是由于使用了CSS3属性,所以要考虑到兼容性,仅Webkit内核的浏览器适用

效果如下:

设计师随后给我发来了一个图案background.jpg:

就拿这张图做背景,即可实现需求,

具体操作如下:


<!DOCTYPE html>
<html>
 
<head>
    <title></title>
</head>
<style type="text/css">
    * {
        font-family: fantasy;
        font-size: 1.8em;
    }
 
    div {
        height: auto; //根据需求而定
        width: auto;//根据需求而定
        background: url(background.jpg) no-repeat;  // 背景图
        background-origin: border-box;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
         
    }
</style>
 
<body>
    <div>影像随用随取</div>
</body>
 
</html>

这个解决方案是参考一位网友的,他在文章中提到:

"由于是css3的,所以有些浏览器不支持,而且text-till-color:transparent是Webkit内核的私有属性,所以其他非webkit浏览器可能不行."

抽空查了查css3,

background-clip指背景剪裁的位置.

比如:通常为盒子添加背景色后,整个盒子包括边框在内,都后有背景色;

可一旦添加上background-clip属性,

如background-clip: padding-box; 那么背景只在padding到content的区域显示,边框不显示背景图;

如 background-clip: content-box;那么背景只显示在content区域,其以外均不显示背景图;

上面代码background-clip: text;表示只为文本添加背景图

background-origin指背景图显示的位置,

padding-box 背景图像填充框的相对位置
border-box 背景图像边界框的相对位置
content-box 背景图像的相对位置的内容框

这个属性私以为也可以不写~~~

text-fill-color,文本填充颜色,通常设为transparent,透明色; 这个属性对于我写的那个效果,私以为也可以不写~~~

最常见的渐变色文字效果,就脱离不了text-fill-color的功能

background-image:-webkit-linear-gradient(#eee,#000);
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
  • 作者:elephant230
  • 原文链接:https://blog.csdn.net/elephant230/article/details/90262980
    更新时间:2022年6月9日11:57:22 ,共 1188 字。