CSS3设置border某一边的颜色渐变

html-css063

CSS3设置border某一边的颜色渐变,第1张

如图所示,渐变的边框是一个 li 标签,要给他的 border-bottom 设置颜色渐变。

background-image 中的第一个 linear-gradient 是设置 li 标签的背景色的,

第二个 linear-gradient 配合 border-image 即可设置 border 的渐变色。

一、CSS3 中的边框颜色 这里是一个10px宽的标准边框和边框颜色: #borderColor { border: 10px solid #dedede-moz-border-bottom-colors: #300 #600 #700 #800 #900 #A00-moz-border-top-colors: #300 #600 #700 #800 #900 #A00-moz-border-left-colors: #300 #600 #700 #800 #900 #A00-moz-border-right-colors: #300 #600 #700 #800 #900 #A00padding: 15px 25pxheight: inheritwidth: 590px}二、有圆角的边框颜色 #borderColorCorner { border: 10px solid #dedede-moz-border-radius: 15px-moz-border-bottom-colors: #303 #404 #606 #808 #909 #A0A-moz-border-top-colors: #303 #404 #606 #808 #909 #A0A-moz-border-left-colors: #303 #404 #606 #808 #909 #A0A-moz-border-right-colors: #303 #404 #606 #808 #909 #A0Apadding: 15px 25pxheight: inheritwidth: 590px}

css文件渐变虽然兼容性比较差,但是用在移动端和chrome中还是没有问题的。

实现文件渐变的方法有两种

效果如下

-webkit-background-clip W3C支持的属性说明

但是并没有text 属性,所以这个只能在chrome上看到效果,在其他浏览器没有实现,它的兼容性就有很大的问题了

-webkit-background-clip: text 用文本剪辑背景,用渐变背景作为颜色填充文本。

缺点:webkit 内核浏览器特有

效果如下

使用:mask-image

缺点:webkit 内核浏览器特有

采用 svg 方式

实现原理:程序首先算出字体所在容器的高度N,然后清空容器内容,并添加N个span,每个span内容都为原容器的文字,每个span的颜色根据渐变色进行计算,而且其中的文字定位都相比之前一个span的文字向上偏移一个像素。CSS中可以看到,每个span的高度都为1。这样,我们就通过N各不同颜色的1px的span把字体“拼”出来了,然后加上“高光/阴影”就搞定。