利用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>
- <div class="box first"></div>
- <div class="box second"></div>
- <div class="box third"></div>
- </body>
- </html>
有代码可以看出,其实我们并没有使用border,那么这种边框效果是怎么实现的呢?
总体思路是,我们先定义一个白色的div,在定义一个白色方块大一圈的带颜色的div。两个重叠一下,并且让白色的div覆盖彩色div,就实现了边框的效果。
这里面用到的css知识点很多。
1、:before伪类
通过上面的代码我们看出,其实我们在定义的白色div中定义了一个: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。
以上就是利用linear方法实现绚丽边框的代码和解释,大家可以在本地进行实现,以此发现更多新奇的组合实现方法。
相关文章
CSS 实现渐变效果小结( linear-gradient线性渐变 和 radial-gradient径
这篇文章主要介绍了CSS 实现渐变效果的代码( linear-gradient线性渐变 和 radial-gradient径向渐变),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的2020-04-16CSS3 linear-gradient线性渐变生成加号和减号的方法
本篇文章主要介绍了CSS3 linear-gradient线性渐变生成加号和减号的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-11-21CSS3,线性渐变(linear-gradient)的使用总结
今天这篇文章我们在一起来看看 CSS3 中实现渐变效果的 Gradient 属性的具体用法。在以前,渐变效果和阴影、圆角效果一样都是做成图片,直接编写 CSS 代码就可以实现。2017-01-09- 这篇文章主要为大家详细介绍了CSS3 渐变(Gradients)之CSS3 线性渐变的相关资料,了解学习CSS3 线性渐变,感兴趣的小伙伴们可以参考一下2016-07-08
- 下面小编就为大家带来一篇深入剖析CSS中的线性渐变linear-gradient。小编觉得挺不错的,现在分享给大家,也给大家做个参考2016-04-12
- 这篇文章主要介绍了CSS3中颜色线性渐变实战,示例中展示了代码设置不同渐变方向的效果,需要的朋友可以参考下2015-07-18
- 这篇文章主要介绍了CSS3中线性颜色渐变的一些实现方法,包括分Safari和Chrome的webkit内核与Firefox的Gecko内核两种情况,需要的朋友可以参考下2015-07-14
- 这篇文章主要介绍了CSS3实现线性渐变用法详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-08-07
最新评论