css3使用技巧:细线边框的3种不同的写法

时间:2018-01-26 15:51:44 来源:

【摘要】 最近在做一个H5手机页面项目遇到了一个小小的问题,就是边框描边1像素的问题。例:网易一般的app边框描边的线都小于一像素,那么我就像往常

最近在做一个H5手机页面项目遇到了一个小小的问题,就是边框描边1像素的问题。例:网易

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

1,首先想到的方法是做一张高2像素(1像素有颜色1像素没颜色)的图片做背景,bg-size设置宽100%,高1px

.line li{              background: url('line.png') left top no-repeat;            background-size: 100% 1px;            background-position: left bottom;}

OK,出来了,但有点瑕疵,那么问题来了,左右边框描边虽然可以做旋转(transform) ,但如果要是边框更换颜色那不是还要在做图片了,好像是有点麻烦哦;

2,所以用上个方法联想到了线性渐变(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: bottom;}

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

如 left描边需要改变:

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

 

都不一一列出了,好像还是有点麻烦哦;

3,所以想到了CSS3阴影(box-shadow),就是用阴影做描边然后用伪类把多余的给遮罩着,

.line li{box-shadow: inset 0 -1px 1px #000;background: #fff;margin-left: -1px;margin-bottom: 10px;position: relative;}.line li::after{content:'';position: absolute;top:0;left: 0px;right: 0px;bottom: 0px;border: 1px solid #fff;}

 

OK,又出来了,那么问题来了,到底用哪一种好呢,这都是因人而异,我只不过是给出了这些方案,仅供大家参考,如果大家有更好的方法可以贴出来大家共同探讨

    
var username = "bai9474500755";    
var _blogger = username;    
var blog_address = "http://blog.csdn.net/bai9474500755";    
var static_host = "http://csdnimg.cn/release/phoenix/";    
var currentUserName = "";    
var fileName = '47793911';    
var commentscount = 0;    
var islock = false;    
window.quickReplyflag = true;    
var totalFloor = 0;    
var isBole = false;    
var isDigg = false;    
var isExpert = false;    
var isAdm = false;    
var baiduKey = "%E7%99%BE%E5%BA%A6%E7%BC%96%E8%BE%91%E5%99%A8+%E4%BB%A3%E7%A0%81%E8%AF%AD%E8%A8%80%E6%BB%9A%E5%8A%A8%E6%9D%A1";    
var needInsertBaidu = false;    
var isShowAds = true;


上一篇      下一篇
前端相关推荐 更多>>
CSS3 iphone式开关的推荐写法 CSS常用浮出层的写法
前端热点专题 更多>>
热点问答
国家公务员考试年龄限制是多少 公务员国考和省考考试内容有什么区别 函授大专学历能不能考公务员 国家公务员考试考点能自己选择吗 新闻学专业能报考2022年公务员考试吗 什么是联合培养研究生 什么是破格录取研究生 什么人不适合读研 研究生报名户口所在地填什么 研究生结业和毕业有什么区别
网站首页 网站地图 返回顶部
考必过移动版 https://m.kaobiguo.net