视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
利用CSS3的线性渐变linear-gradient制作边框的示例代码分享
2020-11-27 18:52:42 责编:小采
文档


linear-gradient线条用来制作边框还是比较给力的,尤其是利用其描边可以制作一些复制的边框效果,这里我们就来看一下利用CSS3的线性渐变linear-gradient制作边框的示例代码分享

一般的app边框描边的线都小于一像素,那么我就像往常一样直接描了1px的边框,虽然是1px可是结果和app里的描边完全不一样“粗了”,所以就在网找了一下看看有没有解决方法,可是找了一会没找到,那咋办,需求方不愿意不要这么粗,那就只能自己解决了。
所以用上个方法联想到了线性渐变(linear-gradient)

.line li{ border: none; 
 background-image: -webkit-linear-gradient(#222 50%,transparent 50%); 
 background-image: -moz-linear-gradient(#222 50%,transparent 50%); 
 background-image: -o-linear-gradient(#222 50%,transparent 50%); 
 background-image: linear-gradient(#222 50%,transparent 50%); 
 background-size: 100% 1px; 
 background-repeat: no-repeat; 
 background-position: bottombottom;}
<ul class="line">
 <li>linear-gradient</li>
 <li>linear-gradient</li>
 <li>linear-gradient</li>
</ul>

OK,又出来了,但还是有点瑕疵,那么问题来了,就是改变描边位置(left,top,right,bottom)需要修改参数

如 left描边需要改变:

background-image: -webkit-linear-gradient(left ,transparent 50%,#222 50%); 
background-size: 1px 100%; 
background-position: left;

具体的都不一一列出了。


利用linear制作复杂的边框效果
另外,在网上看到一种利用linear-gradient属性制作绚丽边框效果的方法。首先给出代码,大家可以在自己的电脑中查看效果:

<!DOCTYPE html> 

<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
 <meta charset="utf-8" /> 
 <title></title> 
 <style> 
 .box { 
 margin: 80px 30px; 
 width: 200px; 
 height: 200px; 
 position: relative; 
 background: #fff; 
 float: left; 
 } 

 .box:before { 
 content: ''; 
 z-index: -1; 
 position: absolute; 
 width: 220px; 
 height: 220px; 
 top: -10px; 
 left: -10px; 
 } 

 .first:before { 
 background-image: linear-gradient(90deg, yellow, gold); 
 } 

 .second:before { 
 background-image: linear-gradient(0deg, orange, red); 
 } 

 .third:before { 
 background-image: repeating-linear-gradient(-45deg,#cc2a2d,#cc2a2d 30px,#f2f2f2 30px,#f2f2f2 40px,#0e71bb 40px,#0e71bb 70px,#f2f2f2 70px,#f2f2f2 80px); 
 } 
 </style> 
</head> 
<body> 
 <p class="box first"></p> 
 <p class="box second"></p> 
 <p class="box third"></p> 
</body> 
</html>


有代码可以看出,其实我们并没有使用border,那么这种边框效果是怎么实现的呢?
总体思路是,我们先定义一个白色的p,在定义一个白色方块大一圈的带颜色的p。两个重叠一下,并且让白色的p覆盖彩色p,就实现了边框的效果。
这里面用到的css知识点很多。
1、:before伪类
通过上面的代码我们看出,其实我们在定义的白色p中定义了一个:before伪类,把彩色方块所有的样式都放在了这里。这是因为使用:before定义可以使得定位更加方便,只要调整top和left为边框的宽度就可以了。同时也是的二者成为一个整体。
2、linear-gradient
现在很多浏览器都支持这个css方法。该方法有以下三种使用模式:
①background:linear-gradient(top,#fff,#000)
这段代码的意思是,从上部开始为白色,到底部为黑色进行过度。
②background:linear-gradient(top,right,#fff,#000)
这段代码关于位置传递了两个参数,top和right,表示从右上放开始,到左下方变化,其他道理与第一个相同。
③background:linear-gradient(30deg,#fff,#000)
这段代码的第一个参数传递的是角度,其实道理和位置是一样的,只是不是从标准的位置开始变化了。那么角度和位置的对应关系是什么呢?根据实验,0度对应bottom,90度对应left,180度对应top,360度对应right。

下载本文
显示全文
专题