最后找到一个还算好用的方法:伪类 + transform
原理是把原先元素的 border 去掉,然后利用:before或者:after重做 border ,并 transform 的 scale 缩小一半,原先的元素相对定位,新做的 border 绝对定位 单条 border .hairlines li{
position: relative;
border:none;
}
.hairlines li:after{
content: '';
position: absolute;
left: ;
background: #;
width: %;
height: 1px;
-webkit-transform: scaleY(0.5);
transform: scaleY(0.5);
-webkit-transform-origin: ;
transform-origin: ;
} 四条 border .hairlines li{
position: relative;
border:none;
}
.hairlines li:after{
content: '';
position: absolute;
top: ;
left: ;
border-bottom: 1px solid #; //设置底边框极细线
-webkit-box-sizing: border-box;
box-sizing: border-box;
width: %;
height: %;
-webkit-transform: scale(0.5);
transform: scale(0.5);
-webkit-transform-origin: left top;
transform-origin: left top;
} //一般不用 样式使用的时候,也要结合 JS 代码,判断是否 Retina 屏 if(window.devicePixelRatio && devicePixelRatio >= ){
document.querySelector('ul').className = 'hairlines';
}

这样会影响点击事件,所以在可以点击的地方的z-index大于加了极细线的,这样加了极细线的地方就不会挡住它上面的可以点击的地方。

下面的方法没有尝试:

在app应用开发中,我们常常都需要用到css3来设置应用的样式。由于app都是在移动设备上进行展示,所以边框描边的线一般都小于1px,而以往我们使用的都是1px及以上的。那么问题来了,对于小于1px的边框怎么处理呢?为大家介绍几种css3中细线边框的写法,希望对遇到类似问题的童鞋有帮助。
、做一张高2像素(1像素有颜色1像素没颜色)的图片做背景,bg-size设置宽100%,高1px
.line li{
background: url('line.png') left top no-repeat;
background-size: % 1px;
background-position: left bottom;}
<ul class="line">
<li></li>
<li></li>
<li></li>
</ul>
这种方法有一个问题,就是左右边框描边虽然可以做旋转(transform) ,但如果要是边框更换颜色那岂不是还要再做图片了;
、通过上面的方法,我们也很容易联想到线性渐变(linear-gradient),具体实现如下:
.line li{ border: none;
background-image: -webkit-linear-gradient(# %,transparent %);
background-image: -moz-linear-gradient(# %,transparent %);
background-image: -o-linear-gradient(# %,transparent %);
background-image: linear-gradient(# %,transparent %);
background-size: % 1px;
background-repeat: no-repeat;
background-position: bottom;}
<ul class="line">
<li>linear-gradient</li>
<li>linear-gradient</li>
<li>linear-gradient</li>
</ul>
这种方法仍然不够完美,改变描边位置(left,top,right,bottom)时需要修改参数,如 left描边需要改变:
background-image: -webkit-linear-gradient(left ,transparent %,# %);
background-size: 1px %;
background-position: left; 、那还有什么方法可以解决细线边框问题呢?我们不妨可以试试了CSS3阴影(box-shadow),用阴影做描边然后用伪类把多余的给遮罩着:
.line li{box-shadow: inset -1px 1px #;background: #fff;margin-left: -1px;margin-bottom: 10px;position: relative;}
.line li::after{content:'';position: absolute;top:;left: 0px;right: 0px;bottom: 0px;border: 1px solid #fff;}
<ul class="line">
<li>box-shadow</li>
<li>box-shadow</li>
<li>box-shadow</li>
</ul> 虽然,小编分享的几种方法都还存在瑕疵,具体使用哪种方法,你可以根据你的情况而定。如果你有更完美的解决方案的话,也欢迎分享出来,大家一起学习,一起进步。

android 极细线的更多相关文章

  1. android 多线程下载 断点续传

    来源:网易云课堂Android极客班第八次作业练习 练习内容: 多线程 asyncTask handler 多线程下载的原理 首先获取到目标文件的大小,然后在磁盘上申请一块空间用于保存目标文件,接着把 ...

  2. 选择Android还是IOS开发?

    选择Android还是IOS? 随着移动互联网的如日中天,涌现了越来越多的开发者.IOS优秀的用户体验,Android极高的用户群,这对于开发者来说陷入了选择困难的境地,尤其是新入门的开发者,精力有限 ...

  3. 极简Unity调用Android方法

    简介 之前写了篇unity和Android交互的教程,由于代码里面有些公司的代码,导致很多网友看不懂,并且确实有点小复杂,这里弄一个极简的版本 步骤 废话不多说,直接来步骤吧 1.创建工程,弄大概像这 ...

  4. 极简的Android RecyclerView Adapter(使用DataBinding)

    阅读本篇文章需要读者对Android Databinding和RecyclerView有一定的了解. 简介 我们知道,DataBinding的核心理念是数据驱动.数据驱动驱动的目标就是View,使用D ...

  5. Android的WebView控件载入网页显示速度慢的究极解决方案

    Android的WebView控件载入网页显示速度慢的究极解决方案 [转载来源自http://hi.baidu.com/goldchocobo/] 秒(甚至更多)时间才会显示出来.研究了很久,搜遍了国 ...

  6. Android开发学习之路-Git的极简教程?

    Git是一个代码版本管理工具,也就是允许我们的一个项目拥有多个版本,这样我们可以随心所欲的修改我们的代码,如果出现问题,可以回退到某一个提交点.如果你还在用一堆堆注释来更新你的代码,那么可以尝试一下G ...

  7. Android zxing 解析二维码,生成二维码极简demo

    zxing 官方的代码很多,看起来很费劲,此demo只抽取了有用的部分,实现了相机预览解码,解析本地二维码,生成二维码三个功能. 简化后的结构如下: 废话少说直接上代码: BaseDecodeHand ...

  8. android Xml生成一条细线,以及获取屏幕宽度和高度

    <View android:layout_width="match_parent" android:layout_height="2dip" androi ...

  9. 【转】Android的WebView控件载入网页显示速度慢的究极解决方案

    秒(甚至更多)时间才会显示出来.研究了很久,搜遍了国外很多网站,也看过PhoneGap的代码,一直无解. 一般人堆WebView的加速,都是建议先用webView.getSettings().setB ...

随机推荐

  1. android:layout_gravity 和android:gravit的区别?

    Android:layout_gravity 和android:gravit的区别? android:gravity是调整元素本身的内容或元素包含的子元素显示的位置,默认是显示在左侧 android: ...

  2. mahout demo——本质上是基于Hadoop的分步式算法实现,比如多节点的数据合并,数据排序,网路通信的效率,节点宕机重算,数据分步式存储

    摘自:http://blog.fens.me/mahout-recommendation-api/ 测试程序:RecommenderTest.java 测试数据集:item.csv 1,101,5.0 ...

  3. 【BZOJ 2724】 蒲公英

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2724 [算法] 分块算法在线维护区间众数 分块算法的精髓就在于 : 大段维护,局部朴 ...

  4. 搭建简单的Habernate环境(一)

    一.开篇 下载Habernate所需要的jar包和mysql驱动. 二.建立java项目并且导入所需要的包 三.建立实体类和配置映射文件 user实体类 package testPackage; pu ...

  5. week3_notebooke1

    今日内容:编码集合深浅cpoy文件操作函数初始函数函数的返回值函数的传参 初识: # == 数值比较 # is 比较的是内存地址 # id 测试的是内存地址 # 小数据池 str int # int: ...

  6. layui的多文件列表上传功能前端代码

    html页面的代码(注意:引入layui相关的css): <div class="layui-upload" style="margin-left: 130px&q ...

  7. log4j:WARN Please initialize the log4j system properly.解决方案

    在使用quarz任务调度框架时的错误,实际上这个问题很常见,并不影响程序的使用,只是缺少日志输出,完整错误信息: log4j:WARN No appenders could be found for ...

  8. java的-D命令行参数 mvn -D参数

    java的-D命令行参数 我们会用mvn启动一个应用,如下的命令行: MAVEN_OPTS="-XX:PermSize=256m -XX:MaxPermSize=512m" mvn ...

  9. iOS的流畅性

    1优先级别不同:iOS最先响应屏幕 优先级别不同:iOS最先响应屏幕 当我们使用iOS或者是Android手机时,第一步就是滑屏解锁找到相应程序点击进入.而这个时候往往是所有操控开始的第一步骤,iOS ...

  10. Type system-Type checking

    类型系统的属性: 1.结构属性: 2.规则属性:类型系统定义了一套规则(内部数据的访问规则.函数的访问规则.类型的比较与转化规则),以供编译和运行时进行检查. In programming langu ...