移动webApp - 1像素实现(点5像素的秘密)

在移动web项目中,经常会实现以下1像素的边框

移动web设计中,在retina显示屏下网页会由1px会被渲染为2px,那么视觉稿中1px的线条还原成网页需要css定义为0.5px

但是正当我们去用0.5px定于boder的时候发现css的border-width: 0.5px不起作用,那是不是真的不支持0.5px呢?

我们在定义0.5px的时候发现的一些问题

  • css的border-width值支持.5px,但是显示状态受屏幕分辨率的影响
  • ios 8和winphone 8的设备对高清屏做了特殊处理,支持显示border-width:.5px
  • android 几乎所有的机型不支持显示.5px的边框

实现.5px的线条



网络上有很多方法,如设置viewport,box-shawdow,border-image,background-image,transform:scale等,这里不做介绍(百度或者谷歌“retina 1px 边框”有答案),本文只介绍一种觉得比较好用的方法,一来兼容性好,二来不依赖图片。

transform:scale(x,y)

通过css支持定义border或者height为.5px大的线条,在android设备中的无法显示出来,这里有个小技巧,果设置线条为1px,然后通过transform:scale(x,y)来缩放线条为原来的一半,可显示0.5px的线条。

<style type="text/css">
.line {
    height: 50px;
    line-height: 50px;
    background-color: #CCC;
    border-bottom:1px solid red
} 

.scale {
    position: relative;
    height: 50px;
    line-height: 50px;
    background-color: #CCC
}
.scale:after {
    position: absolute;
    content: ‘‘;
    width: 100%;
    left: 0;
    bottom: 0;
    height: 1px;
    background-color: red;
    -webkit-transform: scale(1,.5);
    transform: scale(1,.5);
    -webkit-transform-origin: center bottom;
    transform-origin: center bottom
}
</style>

<div class="line">1px</div>
<div class="scale">0.5px</div>
时间: 2024-08-11 11:23:09

移动webApp - 1像素实现(点5像素的秘密)的相关文章

ViewPort,逻辑像素/设备独立像素,物理像素/设备独立像素,分辨率,CSS像素,设备像素比DPR,像素密度PPI。

一.相关基础知识 小米note参数查看:http://www.mi.com/minote/specs/ 以下都以小米note这个设备为例. 1.一般说手机的几寸是指:手机显示屏对角线的长度.1英寸2.54厘米.小米note为5.7英寸,约为14.478厘米. 2.物理像素/设备像素/像素:以一个很不严谨的方式去通俗的解释:这个屏幕是5英寸的,先把竖着等距画1919条线,这样横着看会有1920列,同理再横着画1079条线,竖着看会有1080行,这个过程中横线和竖线会相交,于是产生了一个个格子,这个

lcd中像素深度bpp和像素格式(比如RGB,YUV)的关系

像素深度(bits per pixel,简称bpp) 一个像素的颜色在计算机中由多少个字节数据来描述.计算机中用二进制位来表示一个像素的数据,用来表示一个像素的数据位越多,则这个像素的颜色值更加丰富.分的更细,颜色深度就更深. 一般来说像素深度有这么几种:1位.8位.16位.24位.32位. 像素格式(pixel format)像素色彩按分量的大小和排列.这种格式以每个像素所使用的总位数以及用于存储像素色彩的红.绿.蓝和 alpha 分量的位数指定. 比如RGB565, RGB24, RGB32

Object-C图片压缩--像素压缩和非像素压缩

/* * @brief 压缩图片 @Fire * * @param originImage 原始图片 * @param pc 是否进行像素压缩 * @param maxPixel 压缩后长和宽的最大像素:pc=NO时,此参数无效. * @param jc 是否进行JPEG压缩 * @param maxKB 图片最大体积,以KB为单位:jc=NO时,此参数无效. * * @return 返回图片的NSData */ - (NSData*) compressImage:(UIImage*)origi

移动WEB开发--CSS像素、设备独立像素、设备像素之间关系

CSS像素.设备独立像素.设备像素,三者联系紧密又有很大的区别,而我们主要是在做移动端开发的时候需要更多地用到这些概念,那他们分别是指什么呢? 概念 CSS像素(CSS Pixel):适用于web编程,指的是我们在样式代码中使用到的逻辑像素,是一个抽象概念,实际并不存在 设备独立像素(Device Independent Pixel):与设备无关的逻辑像素,代表可以通过程序控制使用的虚拟像素,是一个总体概念,包括了CSS像素 设备像素(Device Pixel):物理像素,设备能控制显示的最小单

移动端0.5像素0.5像素边框0.5像素圆角边框

0.5像素线条: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta content="width=device-width,initial-scale=1,maximum-scale=1.0,user-scalable=no" name="viewport"> <meta content="yes&quo

px像素单位与IOS像素单位的换算

本文转载至  http://blog.csdn.net/fanyuna/article/details/24032663 30px转成磅为单位=22磅=二号 磅=(像素/96)*72 =(30/96)*72 =22.5磅 中文字号VS英文字号(磅)VS像素值的对应关系: 八号=5磅(5pt) ==(5/72)*96=6.67 =6px(像素) 七号=5.5磅 ==(5.5/72)*96=7.3 =7px(像素) 小六=6.5磅 ==(6.5/72)*96=8.67 =8px(像素) 六号=7.5

webapp meta和设备像素比devicePixelRatio

webapp meta <!-- 启用360浏览器的极速模式(webkit) – --><meta name="renderer" content="webkit"><!-- 避免IE使用兼容模式 --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- 针对手持设备优化,主要是针对一些老的不识别viewpor

前端工程师需要明白的「像素」

场景: 人物:前端实习生「阿树」与 切图工程师「玉凤」 事件:设计师出设计稿,前端实现页面 玉凤:树,设计稿发给你啦,差那么点像素,就叼死你┏(  ̄へ ̄)=? 阿树:~(>_<)~毛问题噶啦~ 阿树:哇靠,为啥你给的设计稿是640px宽 ,iPhone 5不是320px宽吗??? 玉凤:A pixel is not a pixel is not a pixel, you know ? 阿树:(#‵′),I know Google... 为什么会出现以上的情况,难道他们当中一位出错了,摆了这样的

手机端一像素问题

由于手机dpr(设备像素比)的问题,webapp中经常会出现1像素边框的问题,解决办法如下 //以下代码是使用sylus实现 border-1px($color){ position:relative; &:after{ display:block; position:absolute; left:0; bottom:0; border-top:1px solid $color; content:' '; width:100%; } } //解决办法 @media (-webkit-min-de

关于CSS中的PX值(像素)

场景: 人物:前端实习生「阿树」与 切图工程师「玉凤」事件:设计师出设计稿,前端实现页面 玉凤:树,设计稿发给你啦,差那么点像素,就叼死你┏(  ̄へ ̄)=?阿树:~(>_<)~毛问题噶啦~阿树:哇靠,为啥你给的设计稿是640px宽 ,iPhone 5不是320px宽吗???玉凤:A pixel is not a pixel is not a pixel, you know ?阿树:(#‵′),I know Google... 为什么会出现以上的情况,难道他们当中一位出错了,摆了这样的乌龙?事实