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

一般的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;}
<ul class="line">
    <li></li>
    <li></li>
    <li></li>
</ul>

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;}
<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;

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

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;}
<ul class="line">
    <li>box-shadow</li>
    <li>box-shadow</li>
    <li>box-shadow</li>
</ul>
时间: 2024-11-07 21:53:50

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

【基础】CSS实现多重边框的5种方式

原文:[基础]CSS实现多重边框的5种方式 简言 目前最优雅地实现多重边框的方案是利用CSS3 的 box-shadow属性,但如果要兼容老的浏览器,则需要选择其它的方案.本文简要地列举了几种多重边框的实现方案,大家可以根据项目实际及兼容性要求等情况,选择最适合的实现方案. 1 利用描边(outline)属性 方案1利用描边(outline)属性结合border属性实现双重边框.此方案实现简单,兼容性好,能兼容除IE6,7以外的浏览器. 1.1 核心代码 .borders { border: s

CSS3在hover下的几种效果代码分享,CSS3在鼠标经过时的几种效果集锦

效果一:360°旋转 修改rotate(旋转度数) 01    * {02        transition:All 0.4s ease-in-out;03        -webkit-transition:All 0.4s ease-in-out;04        -moz-transition:All 0.4s ease-in-out;05        -o-transition:All 0.4s ease-in-out;06    }07    *:hover {08       

css3 如何实现圆边框的渐变

css3 如何实现圆边框的渐变? 如图 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <style> div { width:100px; height:100px; -webkit-transform:rotate(90deg);} div:before {content:""; display:block; width:100px;heig

CSS 0.5px 细线边框的原理和实现方式

细线边框的具体实现方法有:伪元素缩放或渐变,box-shadow模拟,svg画线,border-image裁剪等.要实现小于1px的线条,有个先决条件:屏幕的分辨率要足够高,设备像素比要大于1,即css中的1个像素对应物理屏幕中1个以上的像素点. 对于普通电脑,屏幕物理像素和css像素一一对应,显示的最小单位就是1px.而现在的手机,屏幕物理宽度一般都大于页面显示宽度.例如苹果6s的屏幕分辨率为1334x750像素,但是以375px的宽度显示页面,设备像素比就是750/375=2:此时在css中

iOS开发笔记-两种单例模式的写法

iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h" static ServiceManager *defaultManager; @implementation ServiceManager +(ServiceManager *)defaultManager{ if(!defaultManager) defaultManager=[[self allocWith

两种sql的写法的比较

SUM(p.payable - p.single_price) AS profitCount, m.order_id AS orderId, m.create_time, m.dept_airport_code, m.arrv_airport_code, m.payable AS price FROM om_passenger p, om_order m WHERE p.order_id = m.order_id AND p.ticket_status = '1' AND m.create_ty

ios实现0.5px的几种方法,安卓设备也实用,安卓和ios实现细线边框

//判断ios版本 ,设置一个全局的样式名 hairlines,通过运用样式名,来给不同版本ios添加样式,ios版本不同对于0.5px显示效果也区别很大,同一个设备也是显示出五花八门的效果.//安卓不需要判断版本,可以跳过js判断. <script type="text/javascript">//js放在头部head区域 if (/iP(hone|od|ad)/.test(navigator.userAgent)) { var v = (navigator.appVer

细线边框

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;}<ul class="line"> <li></li> <li></li>

使用CSS为图片添加边框的几种方法

css的应用十分广泛,即便用在图片的效果中也是方法多样,本文下面就介绍五种为图片添加特殊效果边框的CSS写法阴影效果 通过使用带有一些padding之的背景图来添加阴影效果. HTML <img class=”shadow” src=”sample.jpg” alt=”" /> CSS img.shadow { background: url(shadow-1000×1000.gif) no-repeat right bottom; padding: 5px 10px 10px 5p