通过CSS border-radius,我向大家展示了如何实现方形元素的圆角效果,这解决了以前美工画出这种效果而开发人员无法实现的问题。CSS渐变色(Gradients)也是一个类似的技术。现在火狐,谷歌浏览器,Safari,IE8+都支持这种技术,我们可以安全的在网站上使用它。下面我们来看看CSS渐变色(Gradients)技术基本的语法,浏览器支持情况和缺陷。

CSS渐变色(Gradients)术语和解释

CSS渐变色(Gradients)能让我们用一种颜色渐变的效果修饰一个空间——从一种颜色过渡到另外一种颜色——填充这个空间。渐变色有两个形式:linear (线性渐变) 和 radial (环形渐变)。很显然CSS渐变色(Gradients)技术是产生了一种视觉图案效果,而实现这种视觉效果很简单,能通过简单编程实现。CSS3里很早就引入了CSS渐变色(Gradients),但这种技术的推广却经历了很长时间。

CSS颜色线性渐变的语法

CSS颜色线性渐变的语法在各种浏览器里的实现稍微有些不同,但最后是统一标准的:

background-image: linear-gradient( || ,]? , [, ]*)

第一个参数是渐变起始点或角。第二个参数是一种颜色停止点(color stops)。至少需要两种颜色(起点和终点),你可以添加任意种颜色来增加颜色渐变的丰富程度。对颜色停止点的定义可以是一种颜色,或一种颜色加一个百分比:

/* color-stop(percentage/amount, color) */

color-stop(0.20, red)

因为CSS渐变色(Gradients)技术是CSS3里比较新的技术,属于高级的CSS功能,于是每种浏览器对这种技术的实现都添加了一些自己的特色。例如以WebKIt为渲染引擎的谷歌浏览器,就对它实现了多种语法。下面的这段代码基本包括了所有自顶向下颜色渐变的所有情况:

#example1{

/* 底色 */

background-color: #063053;

/* chrome 2+, safari 4+; multiple color stops */

background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0.32, #063053), color-stop(0.66, #395873), color-stop(0.83, #5c7c99));

/* chrome 10+, safari 5.1+ */

background-image: -webkit-linear-gradient(#063053, #395873, #5c7c99);

/* firefox; multiple color stops */

background-image: -moz-linear-gradient(top,#063053, #395873, #5c7c99);

/* ie 6+ */

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#063053', endColorstr='#395873');

/* ie8 + */

-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#063053', endColorstr='#395873')";

/* ie10 */

background-image: -ms-linear-gradient(#063053, #395873, #5c7c99);

/* opera 11.1 */

background-image: -o-linear-gradient(#063053, #395873, #5c7c99);

/* 标准写法 */

background-image: linear-gradient(#063053, #395873, #5c7c99);

}

注意,我们首先设定了一个背景色。这个颜色是在万一用户使用的浏览器不支持CSS渐变色(Gradients)技术时使用的颜色。CSS渐变色(Gradients)技术里还支持带有角度的渐变方向,而不仅仅只有直上直下或直左直右。我们可以用下面的语法实现它:

#example2{

/* fallback */

background-color:#063053;

/* chrome 2+, safari 4+; multiple color stops */

background-image:-webkit-gradient(linear, left bottom, right top, color-stop(0.32, #063053), color-stop(0.66, #395873), color-stop(0.83, #5c7c99));

/* chrome 10+, safari 5.1+ */

background-image:-webkit-linear-gradient(45deg, #063053, #395873, #5c7c99);

/* firefox; multiple color stops */

background-image:-moz-linear-gradient(45deg, #063053, #395873, #5c7c99);

/* ie10 */

background-image: -ms-linear-gradient(45deg, #063053 0%, #395873 100%);

/* opera 11.1 */

background-image: -o-linear-gradient(45deg, #063053, #395873);

/* The "standard" */

background-image: linear-gradient(45deg, #063053, #395873);

}

我们可以做的更复杂些….一个色彩缤纷的CSS颜色渐变?下面我们来做一个彩虹:

/* example 3 - linear rainbow */

#example3{

/* fallback */

background-color:#063053;

/* chrome 2+, safari 4+; multiple color stops */

background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0.20, red), color-stop(0.40, green), color-stop(0.6, blue), color-stop(0.8, purple), color-stop(1, orange));

/* chrome 10+, safari 5.1+ */

background-image:-webkit-linear-gradient(red, green, blue, purple, orange);

/* firefox; multiple color stops */

background-image:-moz-linear-gradient(top, red, green, blue, purple, orange);

/* ie10 */

background-image: -ms-linear-gradient(red, green, blue, purple, orange);

/* opera 11.1 */

background-image: -o-linear-gradient(red, green, blue, purple, orange);

/* The "standard" */

background-image: linear-gradient(red, green, blue, purple, orange);

}

关于IE对CSS颜色渐变技术的支持做一些说明:在早期IE是使用filter和-ms-filter语法实现渐变色,而最新版的IE里改为了-ms-linear-gradient语法。我们可以使用CSS里条件判断语句来解决这个问题:

不是很理想,但这对设计一个网站很重要。

CSS环形颜色渐变(Radial Gradients)

CSS环形颜色渐变(Radial Gradients)跟线性渐变(linear gradients)不一样,它不是沿着一个方向渐变,而是以一个点为中心,向四周辐射渐变,360度的。目前除了IE外的所有浏览器都支持CSS环形颜色渐变(Radial Gradients),但它们也都有各自不同的语法…..我说的就是你,WebKit引擎的浏览器,WebKit曾经彻底修改了它的CSS环形颜色渐变(Radial Gradients)的语法。下面我们来看看老式的写法:

/* basic */

background-image: -webkit-gradient(radial, center center, 0, center center, 220, from(orange), to(red));

/* color stops */

background-image: -webkit-gradient(radial, center center, 0, center center, 220, color-stop(0.20, red), color-stop(0.40, green), color-stop(0.6, blue), color-stop(0.8, purple), color-stop(1, orange));

而现在WebKit(主要代表是谷歌浏览器)里的新语法跟火狐浏览器的完全一致了:

radial-gradient( [ || ,]? [ || ,]? , [, ]*)

这种环形颜色渐变语法是最新的火狐和谷歌浏览器使用语法。还有一些常量可以使用在这种渐变技术中来设定渐变环形的大小:

closest-side: 对于原型,是指渐变图形扩散时需要到达的最近的一个边。对于椭圆,是指横向或纵向中要达到最近的一个边。

closest-corner: 是指渐变图形扩散时需要到达的最近的一个角

farthest-side: 跟 closest-side 相似,但到达到的是最远的一个边。

farthest-corner: 是指渐变图形扩散时需要到达的最远的一个角

contain: closest-side的同义词.

cover: farthest-corner的同义词

环形颜色渐变(Radial Gradients)的一个基本的用法是这样的:

#example4 {

background-image: -moz-radial-gradient(orange, red);

background-image: -webkit-gradient(radial, center center, 0, center center, 220, from(orange), to(red)); /* old */

background-image: -webkit-radial-gradient(orange, red); /* new syntax */

background-image: radial-gradient(orange, red);

}

上面的例子没有设定位置和大小——只有两个颜色停止点。实际是可以使用无数颜色,就像下面我们制作的彩虹:

#example5 {

background-image: -moz-radial-gradient(red,green,blue,purple,orange);

background-image: -webkit-gradient(radial, center center, 0, center center, 220, color-stop(0.20, red), color-stop(0.40, green), color-stop(0.6,blue), color-stop(0.8,purple), color-stop(1,orange)); /* old */

background-image: -webkit-radial-gradient(red, green, blue, purple, orange); /* new syntax */

background-image: radial-gradient(red, green, blue, purple, orange);

}

我们实现一个更复杂的,加上位置信息和更多的颜色停止点:

#example6 {

background-image: -moz-radial-gradient(45px 45px 45deg, circle cover, yellow 0%, orange 100%, red 95%);

background-image: -webkit-radial-gradient(45px 45px, circle cover, yellow, orange);

background-image: radial-gradient(45px 45px 45deg, circle cover, yellow 0%, orange 100%, red 95%);

}

注意上面使用的颜色写法和长度的单位。是事实上你可以使用任何颜色写法或长度单位。

CSS颜色渐变(Gradients)的技巧和提示

CSS颜色渐变(Gradients)技术很有价值,但有时很难实现。有时你已经实现了想要的渐变,而浏览器的支持也会成为一个问题。下面是一些使用CSS颜色渐变(Gradients)的建议:

想让你的CSS颜色渐变(Gradients)表现一定的透明度?使用 rgba 颜色。

使用背景色垫底,这样防止当浏览器不支持时不注意没有任何颜色。

火狐浏览器和谷歌浏览器都支持repeating-linear-gradient 和 repeating-radial-gradient,用法是:

#example7 {

background-image: -moz-repeating-linear-gradient(top left -45deg, green, red 5px, white 5px, #ccc 10px);

background-image: -webkit-repeating-linear-gradient(-45deg, green, red 5px, white 5px, #ccc 10px);

}

如果你对渐变效果要求很严格,例如图表,动画,我推荐你使用Dojo的GFX程序包,它是创建矢量图的利器。而且对IE的支持也非常好!

CSS颜色渐变底色

老式浏览器,例如IE6,IE8或早期的火狐,并不支持渐变色技术,所以,你最好设置一个缺省的底色,当遇到不支持的浏览器时,background颜色就起到作用了:

/* example 1 - basic */

#example1{

/* fallback */

background-color:#063053;

/* gradients below */

}

对于不支持的浏览器的另外一种方法是先用新式浏览器实现这个效果,然后截图,然后使用CSS条件判断来调整输出方式。

CSS颜色渐变技术是CSS的一种发展进化的结果,随着现代浏览器技术的越来越成熟,我们能更自信的使用这种技术了。

html渐变色原理,CSS渐变色效果的实现方法与效果演示相关推荐

  1. 前端基础入门学习线路之CSS渐变色效果的实现方法

    通过CSS border-radius,我向大家展示了如何实现方形元素的圆角效果,这解决了以前美工画出这种效果而开发人员无法实现的问题.CSS渐变色(Gradients)也是一个类似的技术.现在火狐, ...

  2. CSS渐变色效果的实现方法

    因为CSS渐变色(Gradients)技术是CSS3里比较新的技术,属于高级的CSS功能,于是每种浏览器对这种技术的实现都添加了一些自己的特色.例如以WebKIt为渲染引擎的谷歌浏览器,就对它实现了多 ...

  3. css渐变色边框的实现的方法

    在项目中,边框的样式多种多样,一种常见的渐变色边框出现:而这种渐变色的边框又结合各种各样的设计,这里结果实现的效果与浏览器的兼容性总结渐变色的实现方法: 圆角的渐变边框border-image 点击进 ...

  4. html5 css 渐变背景,css渐变,css渐变色背景

    #grad{/*Safari5.1-6.0*/ background:-o-linear-gradient(red,blue);/*Opera11.1-12.0*/ background:-moz-l ...

  5. 渐变色在线工具,css 渐变色合成工具,挺好用的

    渐变色在线工具,css 渐变色合成工具,挺好用的 发现了一个不错的渐变色合成工具,大家有需要渐变色的可以试试 地址----->:https://www.rancaikeji.cn/gradien ...

  6. CSS实现字体渐变色,边框渐变色

    CSS实现字体渐变色,边框渐变色 前言 字体实现渐变色 边框渐变色 最后 前言 前段时间有做过字体渐变色和边框渐变色的需求,再此整理一下,以供大家参考. 字体实现渐变色 background: lin ...

  7. html设置body渐变色,css-body背景渐变色的CSS

    css-body背景渐变色的CSS 一.从上往下渐变 body{ FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,s ...

  8. 在html中怎么用圆形渐变,css怎么实现圆形渐变进度条效果

    css怎么实现圆形渐变进度条效果 发布时间:2021-03-17 10:29:57 来源:亿速云 阅读:129 作者:小新 这篇文章给大家分享的是有关css怎么实现圆形渐变进度条效果的内容.小编觉得挺 ...

  9. html渐变色CSS3 渐变,如何实现css3渐变色,css3渐变色怎么写

    原标题:如何实现css3渐变色,css3渐变色怎么写 CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡. 以前,你必须使用图像来实现这些效果.但是,通过使用 CSS ...

  10. css3实现0.5px边框、圆角渐变色边框+圆角渐变色背景

    效果图 0.5px边框 0.5px边框,可以用伪元素实现,before.after都可以.移动端H5页面用的比较多. 圆角渐变色边框+圆角渐变色背景 实现外部圆角边框,内部圆角渐变色背景,是用父div ...

最新文章

  1. java线程callback,Java线程之异步回调(Callback)
  2. JVM 学习笔记 1. JVM 运行模型
  3. mock平台架构及实现
  4. little w and Segment Coverage(差分)
  5. Linux基本目录解释
  6. linux 进程重启脚本
  7. 003-神经网络基础-最优化,前向传播,反向传播
  8. Docker引擎(engine)详解
  9. web安全的一些专业术语介绍
  10. 修复Joe主题静态资源为国内地址
  11. python改变当前工作目录_在python中更改当前工作目录
  12. 江苏大学计算机学院换届,关于计算机学院各支部选举结果的批复
  13. 全球三大计算机病毒爆发事件,全球爆发勒索病毒 十大恐怖电脑病毒排行榜(3)...
  14. minigui源码学习
  15. 阅读笔记:Single Shot Multibox Detector(SSD)
  16. 【Android UI设计与开发】4.底部菜单栏(一)Fragment介绍和简单实现
  17. 沐风:小程序固然好!凭什么能自动赚钱?
  18. Python学习笔记——字符串、列表、元组、字典
  19. bitset用法讲解
  20. python学习笔记——小插曲

热门文章

  1. linux用户起名,如何在Linux中重命名用户(也可以重命名组和主目录)
  2. Java 创建一个Customer类,类中的属性有姓名、年龄、性别,然后创建两个Customer对象,把这两个对象存储在ArrayList对象中,然后再从ArrayList对象中读取出来。
  3. 2014SQLServer还原数据库
  4. 使用注册表管理桌面新建文件
  5. FRM-18108 FRM-10102错误解决
  6. 【2021应用上架】超详细开发者账号申请应用上架审核经验整理
  7. 微型计算机对应的英文名,跟中文名匹配的英文名
  8. C++战斗游戏-----------圣光战神の起源之战 V8.13.0
  9. rgb转hsi matlab,Matlab实现HSI与RGB转换 | 学步园
  10. 转载 nat64 流程描述 通俗易懂