Home > Web Front-end > CSS Tutorial > Three ways to implement css text color gradient (with code)

Three ways to implement css text color gradient (with code)

不言
Release: 2018-11-15 17:37:38
forward
4748 people have browsed it

This article brings you three implementation methods of css text color gradient (with code). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

In the process of web front-end development, UI designers often design some design drawings with gradient text. In the past, we could only use png pictures to replace text. Today, we can use pure CSS to implement gradient text. . Here are 3 implementation methods for your reference!

Basic style:

.gradient-text{text-align: left;text-indent:30px;line-height: 50px;font-size:40px;font-weight:bolder; position: relative; }
Copy after login

The first method, use background-cli, text-fill-color:

.gradient-text-one{  
    background-image:-webkit-linear-gradient(bottom,red,#fd8403,yellow); 
    -webkit-background-clip:text; 
    -webkit-text-fill-color:transparent; 
}
Copy after login

Instructions:

background: - webkit-linear-gradient(...) provides a gradient background for text elements.
webkit-text-fill-color: transparent Fill text with transparent color.
webkit-background-clip: text Clips the background with text and fills the text with the gradient background as color.

The second method is to use mask-image:

.gradient-text-two{
   color:red;
}
.gradient-text-two[data-content]::after{
    content:attr(data-content);
    display: block;
    position:absolute;
    color:yellow;
    left:0;
    top:0;
    z-index:2;
    -webkit-mask-image:-webkit-gradient(linear, 0 0, 0 bottom, from(yellow), to(rgba(0, 0, 255, 0)));
}
Copy after login

Instructions:

mask-image is the same as background-image. Not only can the value be the image path, but also It's a gradient color.

The third method, use linearGradient, fill:

.gradient-text-three{
    fill:url(#SVGID_1_);
    font-size:40px;
    font-weight:bolder;
}
Copy after login
<svg viewBoxs="0 0 500 300" class="svgBox">
    <defs>
        <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="0" y1="10" x2="0" y2="50">
            <stop  offset="0" style="stop-color:yellow"/>
            <stop  offset="0.5" style="stop-color:#fd8403"/>
            <stop  offset="1" style="stop-color:red"/>
        </linearGradient>
    </defs>
    <text text-anchor="middle" class="gradient-text-three" x="110px" y="30%">花信年华</text>
</svg>
Copy after login

Explanation:

In SVG, there are two main gradient types:

Linear Gradient (linearGradient)
Radial Gradient (radialGradient)
Gradient in SVG can be used not only to fill graphic elements, but also to fill text elements

dom example:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>CSS3渐变字体</title>
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <style type="text/css">
        *{margin:0;padding:0;}
        body,html{width:100%;height:100%;}
        .wrapper{width:80%;margin:0 auto;margin-top:30px;}
        .gradient-text{text-align: left;text-indent:30px;line-height: 50px;font-size:40px;font-weight:bolder; position: relative; }
        .gradient-text-one{  
            background-image:-webkit-linear-gradient(bottom,red,#fd8403,yellow); 
            -webkit-background-clip:text; 
            -webkit-text-fill-color:transparent; 
        }
        .gradient-text-two{
            color:red;
        }
        .gradient-text-two[data-content]::after{
            content:attr(data-content);
            display: block;
            position:absolute;
            color:yellow;
            left:0;
            top:0;
            z-index:2;
            -webkit-mask-image:-webkit-gradient(linear, 0 0, 0 bottom, from(yellow), to(rgba(0, 0, 255, 0)));
        }
        .gradient-text-three{
            fill:url(#SVGID_1_);
            font-size:40px;
            font-weight:bolder;
        }
    </style>
</head>
<body>
    <section class="wrapper">
        <p class="panel panel-info">
            <p class="panel-heading">
                <h3 class="panel-title">方法1. background-clip + text-fill-color</h3>
            </p>
            <p class="panel-body">
                <h3 class="gradient-text gradient-text-one">花样年华</h3>
            </p>
        </p>
        <p class="panel panel-warning">
            <p class="panel-heading">
                <h3 class="panel-title">方法2. mask-image</h3>
            </p>
            <p class="panel-body">
                <h3 class="gradient-text gradient-text-two" data-content="豆蔻年华">豆蔻年华</h3>
            </p>
        </p>
        <p class="panel panel-danger">
            
            <p class="panel-heading">
                <h3 class="panel-title">方法3. svg linearGradient</h3>
            </p>
 
            <p class="panel-body">
                <svg viewBoxs="0 0 500 300" class="svgBox">
                    <defs>
                        <linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="0" y1="10" x2="0" y2="50">
                            <stop  offset="0" style="stop-color:yellow"/>
                            <stop  offset="0.5" style="stop-color:#fd8403"/>
                            <stop  offset="1" style="stop-color:red"/>
                        </linearGradient>
                    </defs>
                    <text text-anchor="middle" class="gradient-text-three" x="110px" y="30%">花信年华</text>
                </svg>
            </p>
 
        </p>
    </section>
</body>
</html>
Copy after login

The above is the detailed content of Three ways to implement css text color gradient (with code). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template