图解css3:核心技术与案例实战. 3.2 CSS3边框颜色属性

3.2 CSS3边框颜色属性

border-color属性早在CSS1中就已经定义了。不过,CSS3增强了这个属性的功能,使用它可以为元素边框设置更多的颜色,从而方便Web设计人员设计出更为绚丽的边框效果,例如渐变的边框效果、多颜色的边框效果等。

3.2.1 border-color属性的语法及参数

border-color的语法看上去和CSS1中的完全相同,但为了避免与border-color属性的原功能(也就是在CSS1中的定义边框颜色功能)发生冲突,CSS3在这个属性上做出一定的修改。语法如下。

border-color: [ <color> | transparent
]{1,4} | inherit

换句话说,如果使用border-color这种缩写语法,将不会有任何效果,必须将这个border-color标准写法拆分成四个边框,使用多颜色才会有效果。

border-top-colors: [ <color> |
transparent ]{1,4} | inherit;

border-right-colors: [ <color> |
transparent ]{1,4} | inherit;

border-bottom-colors: [ <color> |
transparent ]{1,4} | inherit;

border-left-colors: [ <color> |
transparent ]{1,4} | inherit;

意     以上四个属性中color是复数colors,如果在书写过程中要是少了(s)字母是错误的,没有任何反应。

 

由于CSS3的border-color属性还没成为标准规范,为了让不同浏览器能渲染正常,有必要加上前缀,如表3-2所示。

表3-2 不同浏览器前缀

浏览器分类     浏览器     私有属性的前端缀

Gecko引擎内核的浏览器      Mozilla(常指Firefox浏览器)    -moz-

Presto引擎内核的浏览器     Opera       -o-

KHTML引擎内核的浏览器    Konqueror        -khtml-

Trident引擎内核的浏览器    Internet Explorer     -ms-

 

有些情况中,为了使用CSS3属性,可能必须添加4行代码或者更多行。例如,为了让border-color在Firefox浏览器下正常,需要加上前缀“-moz-”。

-moz-border-top-colors: #111 #222 #333 #444
#555;

-moz-border-right-colors: #111 #222 #333
#444 #555;

-moz-border-bottom-colors: #111 #222 #333
#444 #555;

-moz-border-left-colors: #111 #222 #333
#444 #555;

现在的规范还不是最终版本,在执行中还会有一些漏洞。因此,执行这些功能时,使用供应商前缀来提供数值,并且使用无前缀声明来提供每个属性的永久版本。当规范成为最终版本且经过完善后,浏览器前缀将被取消。例如:

-moz-border-top-colors:           #111 #222 #333 #444 #555;

-moz-border-right-colors:                  #111 #222 #333 #444 #555;

-moz-border-bottom-colors:   #111 #222 #333 #444 #555;

-moz-border-left-colors:           #111 #222 #333 #444 #555;

     

-webkit-border-top-colors:      #111 #222 #333 #444 #555;

-webkit-border-right-colors:    #111 #222 #333 #444 #555;

-webkit-border-bottom-colors:        #111 #222 #333 #444 #555;

-webkit-border-left-colors:      #111 #222 #333 #444 #555;

     

-ms-border-top-colors:             #111 #222 #333 #444 #555;

-ms-border-right-colors:           #111 #222 #333 #444 #555;

-ms-border-bottom-colors:               #111 #222 #333 #444 #555;

-ms-border-left-colors:             #111 #222 #333 #444 #555;

     

-o-border-top-colors:                 #111 #222 #333 #444 #555;

-o-border-right-colors:              #111 #222 #333 #444 #555;

-o-border-bottom-colors:                  #111 #222 #333 #444 #555;

-o-border-left-colors:                 #111 #222 #333 #444 #555;

     

border-top-colors:                      #111 #222 #333 #444 #555;

border-right-colors:                   #111 #222 #333 #444 #555;

border-bottom-colors:              #111 #222 #333 #444 #555;

border-left-colors:            #111 #222 #333 #444 #555;

即使用这些前缀来维护代码似乎需要很多工作,现在使用CSS3,仍然是利大于弊。虽然需要改变一些前缀属性来修改设计元素,相对于通过图形软件更改背景图像或处理那些其他标记和hack脚本,维护基于CSS3的设计要容易一些。

Lea Verou制作了一个插件-prefix-free,使用这个插件,大家在平时的开发中就可以略去浏览器的前缀,从而节约大家的开发时间与维护成本。

意     如无特别注明,后面涉及的CSS3属性,都需加上各浏览器前缀。

 

border-color属性的参数其实很简单,就是颜色值<
color>,可以为任意合法的颜色值或者颜色值列表。当border-color只设置一个颜色值时,效果和CSS1中的border-color效果一样。只有设置了n个颜色,并且边框宽度也为n像素,就可以使用CSS3的border-color属性设置n个颜色,每种颜色显示1像素的宽度,如果宽度值大于颜色数量的值,最后一种颜色用于显示剩下的宽度。例如,元素的边框设置为20px,而元素的边框颜色只设置了10个,剩下的10px宽度都将显示最后一种颜色,如图3-2所示。

3.2.2 浏览器兼容性

CSS3的“border-color”属性浏览器兼容性虽然功能强大,但到写这本书的时候为止,仅有Firefox 3.0以及其以上的版本支持,而且还不是标准写法(如表3-3所示)。

表3-3 border-color浏览器兼容性

属性名                                         

border-color     ×     3.0 +√     ×     ×     ×

 

CSS3的border-color能帮Web设计师制作渐变、内阴影、外阴影等绚丽的边框效果,但是目前为止,仅有Firefox 3.0以及其以上版本的浏览器支持,而且还不是标准语法,仅是Firefox浏览器自己一个扩展性写法。因此这个属性的使用性并不是很强,大家在实际使用中需要注意。

3.2.3 border-color属性的优势

在CSS2中实现多颜色的边框效果,无外乎两种方法,其一通过添加额外的标签,在每个标签上设置不同的颜色,其二就是通过背景图片来制作。这两种方法和CSS3的border-color相比都略显弊端,第一种多了标签,使结构冗余,第二种方法背景图片不好维护,特别是在改变边框颜色之时更是麻烦。

有一篇博文介绍了使用一个HTML标签元素,通过“::before”和“::after”伪元素使用背景色和边框颜色来模拟一个六色边框的效果,这种方法对多颜色受到限制,最多只能制作六种颜色。

意     除了这些方法,CSS3中还有box-shadow也能实现,详细参考后面介绍box-shadow的章节。

 

3.2.4 实战体验:立体渐变边框效果

在这个案例中,使用CSS3的border-color属性制作一个渐变立体效果的边框,如图3-3所示。

制作这个效果的设计思路很简单,使用border-color属性,将颜色从浅到深依次叠加起来,营造出一种立体渐变的边框效果。

<!DOCTYPE HTML>

<html lang="en-US">

<head>

 
<meta charset="UTF-8">

 
<title>border-color制作立体渐变边框效果</title>

 
<style type="text/css">

   
div{

     
width: 200px;

     
height: 100px;

     
border: 10px solid transparent;

     
border-radius: 15px 0 15px 0;

     
-moz-border-top-colors:#a0a #909 #808 #707 #606 #505 #404 #303;

     
-moz-border-right-colors:#a0a #909 #808 #707 #606 #505 #404 #303;

     
-moz-border-bottom-colors:#a0a #909 #808 #707 #606 #505 #404 #303;

     
-moz-border-left-colors:#a0a #909 #808 #707 #606 #505 #404 #303;

    }

 
</style>

</head>

<body>

 
<div></div>

</body>

</html>

时间: 2022-11-25

图解css3:核心技术与案例实战. 3.2 CSS3边框颜色属性的相关文章

图解css3:核心技术与案例实战

 Web开发技术丛书 图解CSS3:核心技术与案例实战 大 漠 著 图书在版编目(CIP)数据 图解CSS3:核心技术与案例实战/大漠著. -北京:机械工业出版社,2014.7 (Web开发技术丛书) ISBN 978-7-111-46920-9 I. 图- II.大- III. 网页制作工具 IV. TP393.092 中国版本图书馆CIP数据核字(2014)第116144号 图解CSS3:核心技术与案例实战 大 漠 著 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100

图解css3:核心技术与案例实战. 导读

图解CSS3:核心技术与案例实战 大 漠 著 为什么要写这本书     CSS3是在CSS2.1基础上扩展而来,事实上,它还没有完全成熟.有些专家会告诉你,CSS3现在还用不上,甚至几年之后都不会有成熟的规范发布.     目前为止CSS3还没有一套成熟的规范,其中的模块也在不断更新,特别是浏览器对CSS3特性的支持也在不断变化,同时没有足够的时间去学习和研究W3C官方文档和规范,致使我们学习CSS3变得更为复杂.     为什么会选择这个时候编写这样一本图书呢?原因很简单.对于希望Web应用开

图解css3:核心技术与案例实战. 2.8 结构伪类选择器

2.8 结构伪类选择器 伪类可以将一段并不存在的HTML当作独立元素来定位,或是找到无法使用其他简单选择器就能定位到的切实存在的元素.因此CSS3给伪类选择器引入一种"结构伪类选择器".这种选择器可以根据元素在文档树中的某些特性(如相对位置)定位到它们.也就是说,通过文档树结构的相互关系来匹配特定的元素,从而减少HTML文档对ID或类名的定义,帮助你保持代码干净和整洁. 2.8.1 重温HTML的DOM树 所有的结构伪类都是基于HTML文档树的,也称做文档对象模型(DOM),下面简单回

图解css3:核心技术与案例实战. 3.5 CSS3盒子阴影属性

3.5 CSS3盒子阴影属性 box-shadow也是CSS3新增的一个重要属性,用来定义元素的盒子阴影.本节主要介绍CSS3的box-shadow的属性以及如何使用. 3.5.1 box-shadow属性的语法及参数 在具体学习box-shadow使用方法之前,我们必须先知道box-shadow使用的语法规则. box-shadow:none | [ <length> <length> <length>?<length>? || <color>

图解css3:核心技术与案例实战. 3.3 CSS3图片边框属性

3.3 CSS3图片边框属性 border-image效果在CSS2中,只有使用背景图片来制作,而且制作过程非常复杂,做完后也很难维护.如今CSS3中增添了一个图片边框的属性,能够模拟出background-image属性的功能,功能比background-image强大,我们可以使用border-image属性给任何元素( 除border-collapse属性值为collapse的table元素之外)设置图片效果边框,还可以使用这个来制作圆角按钮效果.渐变的Tabs效果等. 3.3.1 bor

图解css3:核心技术与案例实战. 2.11 属性选择器

2.11 属性选择器 在HTML中,通过各种各样的属性可以给元素增加很多附加的信息.例如,通过id属性可以将不同DIV元素进行区分.CSS2中引入了一些属性选择器,这些选择器可基于元素的属性来匹配元素,而CSS3在CSS2的基础上扩展了这些属性选择器,支持基于模式匹配来定位元素. 2.11.1 属性选择器语法 CSS3在CSS2的基础上新增了3个属性选择器,可以帮助大家对标签进行过滤,也能非常容易帮助大家在众多标签中定位自己需要的HTML标签,下面通过表2-18详细介绍CSS3的属性选择器的使用

图解css3:核心技术与案例实战. 1.1 什么是CSS3

1.1 什么是CSS3 CSS3并不是一门新的语言.如果接触过CSS就知道,CSS是创建网页的另一个独立但并非不重要的一部分.CSS是种层叠样式表,是一种样式语言,用来告诉浏览器如何渲染你的Web页面. CSS3是CSS规范的最新版本,在CSS2.1的基础上增加了很多强大的新功能,以帮助开发人员解决一些问题,并且不再需要非语义标签.复杂的JavaScript脚本以及图片,例如圆角功能.多背景.透明度.阴影等功能等.CSS2.1是单一的规范,而CSS3被划分成几个模块组,每个模块组都有自己的规范.

图解css4:核心技术与案例实战. 1.1 什么是CSS3

1.1 什么是CSS3 CSS3并不是一门新的语言.如果接触过CSS就知道,CSS是创建网页的另一个独立但并非不重要的一部分.CSS是种层叠样式表,是一种样式语言,用来告诉浏览器如何渲染你的Web页面. CSS3是CSS规范的最新版本,在CSS2.1的基础上增加了很多强大的新功能,以帮助开发人员解决一些问题,并且不再需要非语义标签.复杂的JavaScript脚本以及图片,例如圆角功能.多背景.透明度.阴影等功能等.CSS2.1是单一的规范,而CSS3被划分成几个模块组,每个模块组都有自己的规范.

图解css3:核心技术与案例实战. 3.1 CSS3边框简介

3.1 CSS3边框简介 border属性在CSS1中就已经定义了,使用它可以设置元素的边框风格,例如设置不同的边框颜色以及粗细.在详细介绍CSS3边框运用之前,先简单回顾边框属性. 3.1.1 边框的基本属性 CSS1和CSS2中的边框属性其实很简单,其主要包括三个类型值. border-width:设置元素边框的粗细. border-color:设置元素边框的颜色. border-style:设置元素边框的类型. 在实际中可以将上面三个属性合并在一起,其缩写的语法: border: bord