移动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个像素的线条,但是发现在移动设备上并不美观,参考淘宝.京东的触屏发现它们均是采 ...
随机推荐
- Opencv Harris角点检测
#include <iostream>#include <opencv2/opencv.hpp> using namespace std;using namespace cv; ...
- 68. Text Justification一行单词 两端对齐
[抄题]: Given an array of words and a width maxWidth, format the text such that each line has exactly ...
- 数据库版本控制工具:NeXtep Designer
下载地址:http://pan.baidu.com/s/1dFuxKFB NeXtep Open Designer 是一个强大的多人协同/多平台的开源数据库的开发工具,致力于于自动化和生产级的集成开发 ...
- transform详解
1.简介 该算法用于实行容器元素的变换操作.有如下两个使用原型,一个将迭代器区间[first,last)中元素,执行一元函数对象op操作,交换后的结果放在[result,result+(last-fi ...
- EZOJ #224
传送门 分析 首先我们发现要让答案最小,或运算一定是没有用的 我们还可以发现a^b = a&(~b) 所以异或运算也没有用 于是我们只考虑否和与 我们还会得到一个性质就是没增加一个数一定会让答 ...
- 空值和null区别
空值代表杯子是真空的,NULL代表杯子中装满了空气
- vmware workstation 12 密钥
VMware Workstation 12序列号:5A02H-AU243-TZJ49-GTC7K-3C61N
- centos7部署JavaWeb项目
centos7部署JavaWeb项目共有三步 1.配置java环境 2.配置tomcat环境. 3.部署JavaWeb项目 一.配置java环境 1.1安装java 参考我的另一篇博文:https:/ ...
- 【转载】rabbitmq的发布确认和事务
地址:https://my.oschina.net/lzhaoqiang/blog/670749 摘要: 介绍confirm的工作机制.使用spring-amqp介绍事务以及发布确认的使用方式.因为事 ...
- 编写高质量代码改善C#程序的157个建议——建议72:在线程同步中使用信号量
建议72:在线程同步中使用信号量 所谓线程同步,就是多个线程在某个对象上执行等待(也可理解为锁定该对象),直到该对象被解除锁定.C#中对象的类型分为引用类型和值类型.CLR在这两种类型上的等待是不一样 ...