利用CSS3的线性渐变linear-gradient制作边框的示例


Posted in HTML / CSS onJune 02, 2016

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

CSS Code复制内容到剪贴板
  1. .line li{  bordernone;   
  2.   background-image: -webkit-linear-gradient(#222 50%,transparent 50%);   
  3.   background-image: -moz-linear-gradient(#222 50%,transparent 50%);   
  4.   background-image: -o-linear-gradient(#222 50%,transparent 50%);   
  5.   background-image: linear-gradient(#222 50%,transparent 50%);   
  6.   background-size:  100% 1px;   
  7.   background-repeatno-repeat;   
  8.   background-positionbottombottom;}  
XML/HTML Code复制内容到剪贴板
  1. <ul class="line">  
  2.     <li>linear-gradient</li>  
  3.     <li>linear-gradient</li>  
  4.     <li>linear-gradient</li>  
  5. </ul>  

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

如 left描边需要改变:

CSS Code复制内容到剪贴板
  1. background-image: -webkit-linear-gradient(left ,transparent 50%,#222 50%);   
  2. background-size:  1px 100%;   
  3. background-positionleft;  

具体的都不一一列出了。

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

CSS Code复制内容到剪贴板
  1. <!DOCTYPE html>     
  2.      
  3. <html lang="en" xmlns="http://www.w3.org/1999/xhtml">     
  4. <head>     
  5.     <meta charset="utf-8" />     
  6.     <title></title>     
  7.     <style>     
  8.         .box {     
  9.             margin80px 30px;     
  10.             width200px;     
  11.             height200px;     
  12.             positionrelative;     
  13.             background#fff;     
  14.             floatleft;     
  15.         }     
  16.      
  17.             .box:before {     
  18.                 content'';     
  19.                 z-index: -1;     
  20.                 positionabsolute;     
  21.                 width220px;     
  22.                 height220px;     
  23.                 top: -10px;     
  24.                 left: -10px;     
  25.             }     
  26.      
  27.         .first:before {     
  28.             background-image: linear-gradient(90deg, yellow, gold);     
  29.         }     
  30.      
  31.         .second:before {     
  32.             background-image: linear-gradient(0deg, orange, red);     
  33.         }     
  34.      
  35.         .third:before {     
  36.             background-image: repeating-linear-gradient(-45deg,#cc2a2d,#cc2a2d 30px,#f2f2f2 30px,#f2f2f2 40px,#0e71bb 40px,#0e71bb 70px,#f2f2f2 70px,#f2f2f2 80px);     
  37.         }     
  38.     </style>     
  39. </head>     
  40. <body>     
  41.     <div class="box first"></div>     
  42.     <div class="box second"></div>     
  43.     <div class="box third"></div>     
  44. </body>     
  45. </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方法实现绚丽边框的代码和解释,大家可以在本地进行实现,以此发现更多新奇的组合实现方法。

HTML / CSS 相关文章推荐
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
Jun 03 HTML / CSS
CSS中几个与换行有关的属性简明总结
Apr 15 HTML / CSS
实例讲解CSS3中Transform的perspective属性的用法
Apr 22 HTML / CSS
CSS3常用的几种颜色渐变模式总结
Nov 18 HTML / CSS
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
Dec 06 HTML / CSS
CSS3的 fit-content实现水平居中
Sep 07 HTML / CSS
详解CSS3 rem(设置字体大小) 教程
Nov 21 HTML / CSS
CSS3动画特效在活动页中的应用
Jan 21 HTML / CSS
html5中 media(播放器)的api使用指南
Dec 26 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
Aug 22 HTML / CSS
html5用video标签流式加载的实现
May 20 HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
Jun 21 HTML / CSS
移动端Web页面的CSS3 flex布局快速上手指南
May 31 #HTML / CSS
CSS3条纹背景制作的实战攻略
May 31 #HTML / CSS
CSS3实现多重边框的方法总结
May 31 #HTML / CSS
结合CSS3的新特性来总结垂直居中的实现方法
May 30 #HTML / CSS
图解CSS3制作圆环形进度条的实例教程
May 26 #HTML / CSS
CSS中的字体大小设置属性总结
May 24 #HTML / CSS
CSS3弹性盒模型flex box快速入门心得(必看篇)
May 24 #HTML / CSS
You might like
PHP7.0版本备注
2015/07/23 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
js数组操作常用方法
2014/05/08 Javascript
jQuery实现防止提交按钮被双击的方法
2015/03/24 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
[03:04]2018年国际邀请赛典藏宝瓶&莱恩声望物品展示 片尾有彩蛋
2018/06/04 DOTA
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
关于Keras Dense层整理
2020/05/21 Python
python制作微博图片爬取工具
2021/01/16 Python
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
大学应届生求职简历的自我评价
2013/10/08 职场文书
自我评价个人范文
2013/12/16 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
期末考试复习计划
2015/01/19 职场文书
爱的承诺书
2015/01/20 职场文书
离婚起诉书范本
2015/05/18 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
MySql分区类型及创建分区的方法
2022/04/13 MySQL