移动web之一像素问题
一、为什么会有一像素问题
弄明白这个问题,首先要知道DPR了。
DPR(device pixel ratio)pixel等于picture element。设备像素比,是默认缩放100%的情况下,即DPR=设备像素个数/理想视口像素个数(device-width)。
1.设备像素:设备的物理像素,任何设备的物理像素都是固定不变的。
2.布局视口:移动端css布局所依据的视口,即css布局是根据布局视口来计算的。理想视口即为理想的布局视口。
拿iPhone6为例,当我们写一像素线border-top:1px solid red;时,屏幕显示的1px的红线吗?显然不是。布局视口是移动端我们css布局的依据视口,在我们设置<meta name="viewport" content="width:device-width">时就将布局视口设置为理想视口了。iPhone6的DPR=2,因此在屏幕上显示的其实是2px的红线。有人说,那我们写css布局时写border-top:0.5 solid red;不就完了吗。想法很好,但是计算机会将0.5计算成1。
二、transform:scale
这里的解决办法是对这条线进行缩放,使用伪元素::before或者::after来实现一像素边框,再利用@media适配不同的设备像素比,来确定缩放比例。
.border-top {
position: relative;
}
.border-top::before {
position: absolute;
top: ;
left: ;
content: " ";
width: %;
height: 1px;
background-color: #e4e4e4;
} /* 2倍屏 */
@media (min-resolution: 2dppx){ // 设备像素比 -webkit-min-device-pixel-ratio 不是标准的css特性,推荐使用分辨率特性resolution
.border-top::before {
transform: scaleY(0.5);
}
} /* 3倍屏 */
@media (min-resolution: 3dppx) {
.border-top::before {
transform: scaleY(0.33);
}
}
移动web之一像素问题的更多相关文章
- 移动端web之像素基础
px:css pixels逻辑像素,浏览器使用的抽象单位 dp,pt :device independent pixels 设备无关像素 dpr:devicePixelRatio 设备像素缩放比 计算 ...
- 移动web 1像素边框
实现方法 border-image 图片 实现 这篇文章是腾讯github上的解决方案border-image来实现的 链接走起 <使用border-image实现类似iOS7的1px底边> ...
- 移动web开发基础(一)——像素
这篇文章要弄清楚2个问题:一.什么是逻辑像素和物理像素:二.这两者有什么关系. 对于问题一,先抛出两个概念.我们经常使用的px就是逻辑像素,是浏览器使用的抽象单位:物理像素又和dp/pt(设备无关像素 ...
- 移动端web开发的一些知识点
整理一下自己平时移动端web开发中遇到的问题,也参考一下前辈的一些总结 1.最常见的要数1像素边框了 因为Retine屏的分辨率始终是普通屏幕的2倍,1px的边框在dpr=2的retina屏下会显示成 ...
- 小型移动 webApp Demo 知识点整理
包括内容: css初始化.css全局设置.常用meat标签.rem适配.flex布局.相关技巧(手势库使用.多行截字.1像素边线.点击状态.placeholder居中等) reset 引用 norma ...
- SVG 与 Canvas:如何选择
SVG 与 Canvas:如何选择 61(共 69)对本文的评价是有帮助 - 评价此主题 本主题一开始将对 SVG 与 Canvas 进行简要比较,接下来会讨论大量的比较代码示例,如光线跟踪和绿屏 ...
- 移动WEB像素相关知识
了解移动web像素的知识,主要是为了切图时心中有数.本文主要围绕一个问题:怎样根据设备厂商提供的屏幕尺寸和物理像素得到我们切图需要的逻辑像素?围绕这个问题以iphone5为例讲解涉及到的web像素相关 ...
- 移动web开发之像素和DPR
× 目录 [1]定义 [2]分类 [3]缩放[4]DPR 前面的话 像素在web开发中几乎天天用到,但到底什么是像素,移动端和桌面端的像素有区别吗,缩放对像素有影响吗,视网膜屏幕和像素有什么关系?关于 ...
- web前端绘制0.5像素的几种方法
最近完成了公司安排的移动web触屏开发,期间涉及到在移动设备上显示线条,最开始采用PC常用的css board属性来显示1个像素的线条,但是发现在移动设备上并不美观,参考淘宝.京东的触屏发现它们均是采 ...
随机推荐
- Android 重写EditText回车事件
之前遇到的问题没来得及记录下来,趁今晚有空就重新回忆并写下了. 我们在用到EditText这个空间时经常需要重写软键盘中的回车事件以配合我们接下来的响应,比如点击回车变成搜索.发送.完成等. Edit ...
- 第一个Django应用程序_part2
一.数据库配置 此文延续第一个Django应用程序_part1. 打开mystic/settings.py.这是一个普通的Python模块,其模块变量表示Django配置 默认情况下,配置使用SQLi ...
- 登录模块(前端bookstrapValidator校验+加密+后台加密+后台验证)
package sysone.zr.com.controller; import java.io.IOException; import javax.servlet.http.HttpServletR ...
- 3-为什么很多 对 1e9+7(100000007)取模
首先有很多题目的答案是很大的,然而出题人的本意也不是让选手写高精度或者Java,所以势必要让答案落在整型的范围内.那么怎么做到这一点呢,对一个很大的质数取模即可(自行思考为什么不是小数).那么如果您学 ...
- 泛型、反射和抽象工厂结合解决多DB问题
- Perl 学习笔记-高级控制结构
1.unless控制结构 类似于独立的else语句; 要么条件为真, 要么执行语句块内的代码; unless(<condition>){code...;} 等价于 if(<con ...
- centos7用fdisk进行分区
1.查看分区信息:fdisk -l 从上面可以看到,/dev/sdb分区还没有使用,现在将其划分成2个10G的分区. 2.执行:fdisk /dev/sdb 1):fdisk命令参数 p:打印分区表. ...
- mysql元数据查询
截图来自<深入浅出MySQL++数据库开发.优化与管理维护+第2版+唐汉明>一书
- Transferring Data Between ASP.NET Web Pages
14 July 2012 20:24 http://www.mikesdotnetting.com/article/192/transferring-data-between-asp-net-web- ...
- idea中dependencies中总是有红色波浪线(缺少dependency)问题
使用IDEA进行maven开发时,将新项目import进工作空间时,Maven Projects栏中的dependencies中总是有红色波浪线,如下图: 但是这些jar在我本地的maven仓库中实际 ...