CSS 实现背景色渐变和文字颜色渐变

1. 背景色渐变

A . linear-gradient:用线性渐变创建图像。

语法:<linear-gradient> = linear-gradient([ [ <angle> | to <side-or-corner> ] ,]? <color-stop>[, <color-stop>]+)

下述值用来表示渐变的方向,可以使用角度或者关键字来设置:

<angle>:用角度值指定渐变的方向(或角度)。
to left:
设置渐变为从右到左。相当于: 270deg
to right:
设置渐变从左到右。相当于: 90deg
to top:
设置渐变从下到上。相当于: 0deg
to bottom:
设置渐变从上到下。相当于: 180deg。这是默认值,等同于留空不写。

<color-stop> 用于指定渐变的起止颜色:

<color>
指定颜色。
<length>
用长度值指定起止色位置。不允许负值
<percentage>
用百分比指定起止色位置。

兼容:除了被扫进历史垃圾堆的IE8,9,以及Opera Mini 不兼容,其他浏览器,包括移动端的浏览器,都能支持这个属性。

如果渐变方向是对角线的话,可以用 to top right 这样的多关键字方式来实现。如:

background: linear-gradient(to top right, #f6f5f0, #fefefd);

如果有多个颜色渐变,颜色的参数可以有多个(如图1):

background: linear-gradient(to top right, #CDDC39, #8BC34A, #FFEB3B);

可以指定颜色渐变的位置(如图2):

background: linear-gradient(to top right, #CDDC39 0%, #8BC34A 25%, #FFEB3B 100%);

        图1                      图 2

 B. radial-gradient:用径向渐变创建图像。

语法:<radial-gradient> = radial-gradient([ [ <shape> || <size> ] [ at <position> ]? , | at <position>, ]?<color-stop>[ , <color-stop> ]+)

<position> 确定圆心的位置。如果提供2个参数,第一个表示横坐标,第二个表示纵坐标;如果只提供一个,第二值默认为50%,即center

<percentage>①:
用百分比指定径向渐变圆心的横坐标值。可以为负值。
<length>①:用长度值指定径向渐变圆心的横坐标值。可以为负值。
left:
设置左边为径向渐变圆心的横坐标值。
center①:
设置中间为径向渐变圆心的横坐标值。
right:
设置右边为径向渐变圆心的横坐标值。
<percentage>②:
用百分比指定径向渐变圆心的纵坐标值。可以为负值。
<length>②:
用长度值指定径向渐变圆心的纵坐标值。可以为负值。
top:
设置顶部为径向渐变圆心的纵坐标值。
center②:
设置中间为径向渐变圆心的纵坐标值。
bottom:
设置底部为径向渐变圆心的纵坐标值。

<shape> 确定圆的类型

circle:
指定圆形的径向渐变
ellipse:
指定椭圆形的径向渐变。

<extent-keyword> circle | ellipse 都接受该值作为 size

closest-side:
指定径向渐变的半径长度为从圆心到离圆心最近的边
closest-corner:
指定径向渐变的半径长度为从圆心到离圆心最近的角
farthest-side:
指定径向渐变的半径长度为从圆心到离圆心最远的边
farthest-corner:
指定径向渐变的半径长度为从圆心到离圆心最远的角

<circle-size> circle 接受该值作为 size

<length>
用长度值指定正圆径向渐变的半径长度。不允许负值。

<ellipse-size> ellipse 接受该值作为 size

<length>
用长度值指定椭圆径向渐变的横向或纵向半径长度。不允许负值。
<percentage>
用百分比指定椭圆径向渐变的横向或纵向半径长度。不允许负值。

<color-stop> 用于指定渐变的起止颜色:

<color>
指定颜色。
<length>
用长度值指定起止色位置。不允许负值
<percentage>
用百分比指定起止色位置。不允许负值
用例子来说明(如图3):

background: radial-gradient(circle, #CDDC39, #8BC34A);

第一个参数有两个值:circle正圆,ellipse椭圆。 默认从圆心向四周渐变。也可以用两个长度数字来表示圆形,比如50px 50px。有这样几种写法:

circle at center (或者left right)

circle at 50% (这个百分比数字可以改成任意想要的位置)

circle farthest-corner (或者其他3个值。)

        图3

2.  文本颜色渐变

<gradient> :可以应用在所有接受图像的属性上,允许使用简单的语法实现颜色渐变,以便UA在渲染页面自动生成图像。

语法:<gradient> = linear-gradient() | repeating-linear-gradient() | radial-gradient() | repeating-radial-gradient()

注意:必需在一个有尺寸的盒子里生成。如果盒子没有尺寸,渐变效果则无法呈现。

可以作用在能接受图像的任意属性上:

 background-image: -webkit-gradient(linear, left 0, right 0, from(rgb(4, 94, 170)), to(rgb(1, 152, 216)));

 list-style-image: -webkit-gradient(linear, left 0, right 0, from(rgb(4, 94, 170)), to(rgb(1, 152, 216)));

文字颜色渐变比较麻烦,并且兼容性差强人意:

    background-image: -webkit-gradient(linear, left 0, right 0, from(rgb(4, 94, 170)), to(rgb(1, 152, 216)));
    -webkit-background-clip: text; /*必需加前缀 -webkit- 才支持这个text值 */
    -webkit-text-fill-color: transparent; /*text-fill-color会覆盖color所定义的字体颜色: */

以上三个属性少一个都不能完成文字渐变。效果图:

兼容性:

text-fill-color,IE果然又不兼容。移动端UC浏览器也不兼容。

-webkit-background-clip: text; 非正式属性,目前(2017-07-07)仅仅FF、Chrome、Safari支持,并且必须带前缀。

所以,如果您的目标用户很有可能会用IE浏览器,那么,就需要再写一个IE下能正常浏览的代码:

    <!--[if IE]>
        <h2>IE才能看见我</h2>
        <img src="images/text-gradient.png" >
    <![endif]-->
时间: 2024-12-18 22:36:15

CSS 实现背景色渐变和文字颜色渐变的相关文章

使用CSS3创建文字颜色渐变(CSS3 Text Gradient)

考虑一下,如何在网页中达到类似以下文字渐变的效果? 传统的实现中,是用一副透明渐变的图片覆盖在文字上.具体实现方式可参考 http://www.qianduan.net/css-gradient-text-effect.html .这种方式优点是图片可控,所以可实现很复杂的渐变效果,但是缺点是图片渐变色必须与背景色一致,同时损失了鼠标点击.文字选择等事件. 改进的方法可以使用 CSS3 的背景渐变 -webkit-gradient ,用一个背景渐变的 DIV 代替图片.下面是实现效果示例,相比以

前端基础学习-css文字颜色渐变的3种实现

在web前端开发过程中,UI设计师经常会设计一些带渐变文字的设计图,在以前我们只能用png的图片来代替文字,今天可以实现使用纯CSS实现渐变文字了.下面就介绍3中实现方式供大家参考! 基础样式: .gradient-text{text-align: left;text-indent:30px;line-height: 50px;font-size:40px;font-weight:bolder; position: relative; } 第一种方法,使用 background-cli. tex

as3.0 小代码(1)------ 颜色渐变中的颜色渐变数组产生算法

//分离:如0xefebec  变成[0xec,0xeb,oxef] function colorValTransfer(inNum:uint):Array{ if(inNum>0xffffff){ throw new Error("Function:colorValTransfer parameter:inNum>>>parameter's value must be smaller than 0xffffff"); } var outArr = []; ou

css文字颜色渐变及阴影效果

参考文档 .desc { font-size: 36px; font-weight: 700; text-shadow: 0px 3px 6px #e35f0b; color: #fff; display: inline-block; position: relative; } .desc::after { position: absolute; left: 0; top: 0; content: attr(data-text); color: #fcf4ae; -webkit-mask-ima

css3文字颜色渐变动画

<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>

Unity 2017 文字颜色渐变

1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using UnityEngine.UI; 5 6 [AddComponentMenu("UI/Effects/GradientText")] 7 public class GradientText : BaseMeshEffect 8 { 9 [SerializeField] 10 private Color32

CSS在不同浏览器下实现颜色渐变效果

想做一个首页巨幕,又不想用图片,这样速度会慢掉一点点,纯色挺丑的,只好试试渐变效果咯.CSS 3有很好的颜色渐变支持,要应付一些老旧的浏览器,还是要几行代码滴. 整理如下:     background-image: -moz-linear-gradient(top, #ff4f02, #8f2c00);     /* Firefox */          background-image: -webkit-gradient(linear, left top, left bottom, col

文字颜色渐变效果

h3{ font-size: 16px; font-weight: 500; display: inline-block; color: #d6a736; background-image: -webkit-linear-gradient(-45deg,#fae2a7 0%, #d6a736 40%, #d6a736 60%,#fae2a7 100%); background-image: linear-gradient(-45deg,#fae2a7 0%, #d6a736 40%, #d6a7

WTL之修改对话框背景和文字颜色的类

/* * 编写: GUO * QQ:349384061 * 用法 * 1.让对话框类公有继承本类 * 2.在对话框类的消息映射宏后面添加消映射链 CHAIN_MSG_MAP(CPaintColor) * 3.本类只是简单的演示,可在此基础上扩展 */ template <class T> //T 为派生的对话框类 class CPaintColor : public CMessageMap { public: CBrush m_brushBkgnd; //背景色, COLORREF m_clr