首先可以看一下下图显示的实现效果:
首先我们先了解一下css中的线性渐变属性 linear-gradient。linear-gradient()
函数用于创建一个表示两种或多种颜色线性渐变的图片。
创建线性渐变,需要设置一个起始点和方向(或角度),还要定义终止色,以及两者之间的可选色(可以有多个)。
从红色到黄色的一个渐变:
background-image:linear-gradient(red,yellow) ;
下面是一个多色的渐变效果
background: linear-gradient(#3f87a6, #ebf8e1, #f69d3c);
可以通过 top bottom left right
来指定上下左右,linear-gradient(to结束的方向,red,yellow);
向右侧方向渐变:
background-image:linear-gradient(to right,#3f87a6, #ebf8e1, #f69d3c);
通过角度渐变:linear-gradient(角度,red,blue);
向45度方向渐变:
background-image:linear-gradient(45deg,#3f87a6, #ebf8e1, #f69d3c);
下图是起始点到10%的位置标蓝色,10%到30% 蓝到白的渐变,30%到70%为白到橘的渐变,从70%到结束标记橘色
background-image:linear-gradient(90deg,#3f87a6 10%, #ebf8e1 30%, #f69d3c 70%)
repeating-linear-gradient()
创建一个在直线上重复前进的渐变。随着渐变的重复,颜色再次循环。在这种情况下,梯度线是100px长。
background: repeating-linear-gradient(90deg,#3f87a6,#ebf8e1 100px);
CSS属性允许在元素的边框上绘制图像,在使用border-image
时,其将会替换掉 border-style 属性所设置的边框样式。 可以看张鑫旭大大写的这个文章《CSS3 border-image详解、应用及jQuery插件》 把border-image写的很清楚啦。 这里就捡重要的简单说明:
border-image的参数有三个:图片,剪裁位置,重复性.
border-image
的背景图使用url()
调用,图片可以是相对路径或是绝对路径,也可以不使用图片,即border-image:none;
。
我们要实现的效果呢,我们用到的 linear-gradient
来创建一个线性渐变图片来显示。
border-image:url(border.png) 27 repeat;
这里的27专指27像素。
“30% 35% 40% 30%”的示意可以用下图表示:
于是总共对图片进行了“四刀切”,形成了九个分离的区域,这就是九宫格
图像边界是否 repeat(重复)、round(平铺)和stretch(拉伸)。其中,stretch是默认值。
参数有0~2个:
上面看到图片被分割成9宫格,在执行重复性时,被填充至边框九宫格四个角落的的边框图片是不执行重复属性的。
上下的九宫格执行水平方向的重复属性(拉伸或平铺),左右的格子执行垂直方向的重复属性(拉伸或平铺),而中间的那个格子则水平重复和垂直方向的重复都要执行。可以参考下图:
通过上面两个属性的学习,接下来我们就可以实现我们想要的效果了
/*首先我们设置边框只显示底部,宽度为2px的实线。*/
border-bottom: 2px solid;
/*设置线性渐变*/
border-image: linear-gradient(90deg, rgba(0, 216, 247, 0) 0%, #00afed 100%) 2 2 2 2;
首先我们看一下线性渐变的效果图:从左到右,由透明开始向蓝色渐变
background: linear-gradient(90deg, rgba(0, 216, 247, 0) 0%, #00afed 100%)
border-image
设置(2 2 2 2
)对图片做了裁剪,得到了下图这样的9宫格。如果不设置重复性(border-image-repeat
)默认值是 stretch(拉伸)
,则会进行如下显示的拉伸。/*首先我们设置边框只显示右侧,宽度为2px的实线。*/
border-right: 2px solid;
/*设置线性渐变*/
border-image: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #00bbf2 20%, rgba(255, 255, 255, 0) 99%) 2 2 2 2;
从上到下,从起始开始,透明向蓝色渐变到20%的位置,然后又向透明进行渐变到99%的位置,99%到结束是透明
background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #00bbf2 20%, rgba(255, 255, 255, 0) 99%);
border-image
设置(2 2 2 2
)对图片做了裁剪,得到了下图这样的9宫格。如果不设置重复性(border-image-repeat
)默认值是 stretch(拉伸)
,则会进行如下显示的拉伸。先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦