zoukankan      html  css  js  c++  java
  • 通过CSS实现 文字渐变色 的两种方式

    说明

    这次的重点就在于两个属性, 
    background 属性 
    mask 属性 
    这两个属性分别是两种实现方式的关键。

    解释

    方式一

    效果图

    这里写图片描述

    代码

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <style>
    
        span {
            background: linear-gradient(to right, red, blue);
            -webkit-background-clip: text;
            color: transparent;
        }
        </style>
    </head>
    
    <body>
            <span>前端简单说</span>
    </body>
    </html>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    代码不多,我们来看看, 
    background: linear-gradient(to right, red, blue); 这行是给背景设置为渐变色,这里注意一点,这样是简写了,其实是给background-image 设置为渐变色,不是 background-color ,是背景图 取值为渐变色,如果不知道渐变色,直接到这里看, 
    CSS3 渐变(Gradients)

    -webkit-background-clip: text; 这行就要说到,background-clip 属性了 ,我们来看看 W3Cschool 上的说明

    background-clip 属性 规定背景的绘制区域

    语法 
    background-clip: border-box|padding-box|content-box;

    这里写图片描述

    上面没有说取值 text 的情况,看到前面的前缀,大家应该也能想到,它的兼容性问题了,目前还不是能所有浏览器都支持。

    取值为text的意思,就是以区块内的文字作为裁剪区域向外裁剪,文字的背景即为区块的背景,文字之外的区域都将被裁剪掉。

    所以,我们最后写color: transparent; 让文字为透明色,就是让后面背景色显示出来。

    方式二

    效果图 
    这里写图片描述 
    代码

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8" />
    
    <style type="text/css">
        h1{
            position: relative;
            color: yellow;
        }
        h1:before{
            content: attr(text);
            position: absolute;
            z-index: 10;
            color:pink;
            -webkit-mask:linear-gradient(to left, red, transparent );
        }
    </style>
    </style>
    </head>
    
    <body>
        <h1 text="前端简单说">前端简单说</h1>
    </body>
    
    </html>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    代码也不多,我们简单说一下,

    :before 选择器向选定的元素 前 插入内容。 
    使用content 属性来指定要插入的内容。

    content取值 attr 就是用来获取属性值的,content:attr(属性名);

    content: attr(text); 能获取到元素的 text 属性,这里的这个text属性是自己自定义的一个属性,你也可以在元素中加一个 tt 属性,像这样 
    <h1 tt="前端简单说">前端简单说</h1> 
    然后content属性 这样写,content: attr(tt); 同样是可以起作用的。

    好的我们继续说第二种方式的重点,mask属性,因为之前已经写过一篇介绍mask属性的文章了, 
    简单说 CSS中的mask—好好利用mask-image 
    这里就不很详细的介绍了,想详细了解的朋友可以看看上面这篇文章,一定会对你有所帮助的。

    mask属性简单说,就是能让元素的某一部分显示或隐藏。 
    我们看张图就能明白,第二种方式实现的原理了 
    这里写图片描述

    总结

    这次说的这两种方式,应该算是很容易理解了,希望对大家有点帮助。

  • 相关阅读:
    Python脚本文件(.py)打包为可执行文件(.exe)即避免命令行中包含Python解释器
    MVC 三步完成增删改查设计
    MVC中使用SqlServerCe
    回车转Tab
    动态代码
    Mvc 用户没有登录跳转到登录界面
    Mvc
    Mvc提交
    EF查询 linq
    EF数据迁移 Migrations
  • 原文地址:https://www.cnblogs.com/lsongyang/p/9430977.html
Copyright © 2011-2022 走看看