CSS - 移动端 1像素解决办法

html-css019

CSS - 移动端 1像素解决办法,第1张

前言:在移动端web开发中,UI设计稿中设置边框为1像素,前端在开发过程中如果出现border:1px,测试会发现在某些机型上,1px会比较粗,即是较经典的 移动端1px像素问题。

要处理这个问题,必须先补充一个知识点,就是设备的 物理像素[设备像素] &逻辑像素[CSS像素];

1.物理像素:

移动设备出厂时,不同设备自带的不同像素,也称硬件像素;

2.逻辑像素:

即css中记录的像素。

在开发中,为什么移动端CSS里面写了1px,实际上看起来比1px粗;了解设备物理像素和逻辑像素的同学应该很容易理解,其实这两个px的含义其实是不一样的,UI设计师要求的1px是指设备的物理像素1px,而CSS里记录的像素是逻辑像素,它们之间存在一个比例关系,通常可以用 javascript 中的 window.devicePixelRatio 来获取,也可以用媒体查询的 -webkit-min-device-pixel-ratio 来获取。当然,比例多少与设备相关。

在手机上border无法达到我们想要的效果。这是因为 devicePixelRatio 特性导致,iPhone的 devicePixelRatio==2,而 border-width: 1px描述的是设备独立像素,所以,border被放大到物理像素2px显示,在iPhone上就显得较粗。

● 用::after和::befor,设置border-bottom:1px solid #000,然后在缩放-webkit-transform: scaleY(0.5)可以实现两根边线的需求

● 用::after设置border:1px solid #000width:200%height:200%,然后再缩放scaleY(0.5)优点可以实现圆角,京东就是这么实现的,缺点是按钮添加active比较麻烦。

css移动端的兼容性问题 (适配问题)

一、浮动问题

简述:

我们在平时切页面时,经常会出现用完浮动(float),忘记删除.下面的布局出现莫名其妙的空白高度,导致布局调整失败

避免使用浮动

二、

链接: http://blog.csdn.net/chenmoquan/article/details/41547609

1、水平居中—使用 text-align

2、margin: auto 居中

3、table-cell 居中

4、Absolute 居中

5、使用 translate 居中

6、使用 Flexbox 居中

7、使用 calc 居中

三、常见的兼容性问题

四、css hack

五、css filter

六、更换渲染模式

七、浏览器内核

八、让H5页面适应所有的iphone手机以及安卓机型的六大技巧

九、REM 布局