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

html-css09

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

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

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

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

实现图片的透明度渐变效果,效果如下:

先说下我的实现,并没有用什么黑科技,而是通过两层图层堆叠的方式来做的。下面一层就是单纯的 svg 图片,上面覆盖了一层遮罩,并设置遮罩的背景色为蓝色到透明色的从左到右渐变。这样,看上去就是一个图片从右到左渐渐变得透明的效果。

这是我比较粗暴的方法,后来在网上看到一种更加优雅的方式:

大体上差不多,重点是 CSS 的 background-image 属性可以设置多张图片,用逗号隔开 。因为我不知道这个属性有这个能力才会额外加了个渐变透明图层来实现效果。

比如:

.sss{ filter:progid:DXImageTransform.Microsoft.Gradient

(startColorStr='#000000', endColorStr='#666666', gradientType='1')}

其中gradientType='1' 的值可以改的。0,1,2任意你自己咯就是水平,垂直之类的不同。

不建议用滤镜来做渐变,因为像FIREFOX那些核心的浏览器是无法显示出你的渐变得,包括NETSCAPE,OPEAR等都没办法,要渐变的话应该用图片直接做好再贴上去。