移动web开发之像素和dpr详解

sexintercourse sexintercourse     2023-05-02     513

关键词:

前话:
  像素在web开发中几乎天天用到,但到底什么是像素,移动端和桌面端的像素有区别吗,缩放对像素有影响吗,视网膜屏幕和像素有什么关系?关于这些问题,可能就不清楚了。本文将介绍关于像素的相关知识
  
什么是像素:
  像素,又称画素,是图像显示的基本单位,译自英文“pixel”,pix是英语单词picture的常用简写,加上英语单词“元素”element,就得到pixel,故“像素”表示“图像元素”之意,有时亦被称为pel(picture element)
  像素是网页布局的基础。一个像素就是计算机能够显示一种特定颜色的最小区域。当设备尺寸相同但像素变得更密集时,屏幕能显示的画面的过渡更细致,网站看起来更明快。

  //ppi是指屏幕上每英寸可以显示的像素点的数量,即屏幕像素密度
  

分类:
  实际上像素分为两种:设备像素和CSS像素
    1、设备像素(device independent pixels): 设备屏幕的物理像素,任何设备的物理像素的数量都是固定的
    2、CSS像素(CSS pixels): 又称为逻辑像素,是为web开发者创造的,在CSS和javascript中使用的一个抽象的层
    每一个CSS声明和几乎所有的javascript属性都使用CSS像素,因此实际上从来用不上设备像素 ,唯一的例外是screen.width/height

//我们通过CSS和javascript代码设置的像素都是逻辑像素
width:300px;
font-size:16px;
1
2
3
缩放:
  在桌面端,css的1个像素往往都是对应着电脑屏幕的1个物理像素。
  
  而在手机端,由于屏幕尺寸的限制,缩放是经常性的操作。
  设备像素(深蓝色背景)、CSS像素(半透明背景)
  下图表示当用户进行缩小操作时,一个设备像素覆盖了多个CSS像素
  
  下图表示当用户进行放大操作时,一个CSS像素覆盖了多个设备像素
  
  不论我们进行缩小或放大操作,元素设置的CSS像素(如width:300px)是始终不变的,而一个CSS像素对应多少个设备像素是根据当前的缩放比例来决定的

HTML中的css像素和dpr:
在HTML中不得不提到viewport,经常会设置viewport的width=device-width,那这个device-width的值是多少呢?

<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>  

我们会发现在iphone5下device-width=320,iphone6下是375,iphone6+下是414,那也就是说device-width其实就是NA开发中屏幕宽度有多少pt和dp。

device-width在html中也同样被解读为理想(基准)视口的宽度,即320px,375px,414px,这里的px就是指css像素,通常也被称为逻辑像素;那我们可以认为html中的css像素的显示尺寸应该和NA中的pt、dp的显示尺寸相等。
1


DPR:
  设备像素比DPR(devicePixelRatio)是默认缩放为100%的情况下,设备像素和CSS像素的比值
  dpr,也被成为device pixel ratio,即物理像素与逻辑像素的比,那也就不难理解:iphone6下dpr=2,iphone6+下dpr=3(考虑的是栅格化时的像素,并非真实的物理像素);
  

DPR = 设备像素 / CSS像素(某一方向上)
1
在早先的移动设备中,并没有DPR的概念。随着技术的发展,移动设备的屏幕像素密度越来越高。从iphone4开始,苹果公司推出了所谓的retina视网膜屏幕。之所以叫做视网膜屏幕,是因为屏幕的PPI(屏幕像素密度)太高,人的视网膜无法分辨出屏幕上的像素点。iphone4的分辨率提高了一倍,但屏幕尺寸却没有变化,这意味着同样大小的屏幕上,像素多了一倍,于是DPR = 2

  实际上,此时的CSS像素对应着以后要提到的理想视口,其对应的javascript属性是screen.width/screen.height

  而对于设备像素比DPR也有对应的javascript属性window.devicePixelRatio

  以iphone8为例,iphone8的CSS像素为375px*677px,DPR是2,所以其设备像素为750px*1354px

750(px) / 375(px) = 2
1354(px) / 677(px) = 2
750(px)*1354(px) / 375(px)*677(px) = 4
————————————————
版权声明:本文为CSDN博主「开心大表哥」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a419419/article/details/79295799

0520日重点:css像素,设备像素以及dpr

...固定的2、CSS像素(CSSpixels): 又称为逻辑像素,是为web开发者创造的,在CSS和javascript中使用的一个抽象的层3.设备像素比DPR(devicePixelRatio)是默认缩放为100%的情况下,设备像素和CSS像素的比值 实际上,此时的CS 查看详情

移动端开发系列——像素与viewport(代码片段)

目录移动端开发的基本观点像素基础知识viewport原理解析弹性布局响应式设计1rem的运用移动端的事件zepto库的使用移动端开发的基本观点移动端开发的意义移动端用户使用量->市场需求->市场供给->公司需要移动端开发人才-... 查看详情

移动端适配方案

Flexible适配方案最早的文章,是15年阿里手淘团队的移动端适配方案。设计师常选择iPhone6作为基准设计尺寸,交付给前端的设计尺寸是按750px*1334px为准(高度会随着内容多少而改变)。前端开发人员通过一套适配规则自动适配到其... 查看详情

移动端开发基础知识

1.物理像素像素即一个小方块,它具有特定的位置和颜色,像素可以作为图片或电子屏幕的最小组成单位,这是一个相对长度单位,因为固定长度的屏幕可以有1000像素,也可以有5000像素2.分辨率屏幕分辨率指一个屏幕具体由多少... 查看详情

开发移动端页面

...CSS像素,而设备像素无论大小还是数量都是不变的。二、移动端的三个视口布局视口:移 查看详情

前端面试题,移动端兼容问题都有哪些,安卓和ios问题?

...解到的和一些看法说出来。首先是屏幕问题,现在主流的移动设备以安卓和IOS为主,我们在制作移动端页面也是以兼容这两种设备去布局。首先说iPhone,不得不说iPhone的屏幕考虑到了我们开发者的难处,从而给出iPhone屏幕的dpr都... 查看详情

响应式网站开发基础(代码片段)

...表示屏幕上同样大小的空间。字体改善机制在屏幕较小的移动设备上显示网页时,浏览器为了让内容看上去更好一些,会开启字体改善机制。浏览器会试图挑出页面中的首要内容,并把它们放大。也就是说有的字体会变大,这易... 查看详情

移动端1px显示异常解决方案(代码片段)

前言在移动端web开发中,UI设计稿中设置边框为1像素,前端在开发过程中如果出现border:1px,测试会发现在retina屏机型中,1px会比较粗,即是较经典的移动端1px像素问题。我们要对与视口、物理像素、逻辑像素、设备像素比、css... 查看详情

移动端像素适配

由于这个DPR的原因我们在移动端写的border:1pxsolid#ddd在6plus上其实是3个像素(DPR=3)在不同DPR的设备上显示是不一样的 @media(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5){.border-1px{&::after{-webkit-transform:scal 查看详情

移动端web怎么循序渐进地开发一个移动端页面

1.移动页面开发基础1.1像素——什么是像素像素是Web页面布局的基础,那么到底什么才是一个像素呢?像素:一个像素就是计算机屏幕所能显示一种特定颜色的最小区域。这是像素的概念,实际上,Web前端开发领域,像素... 查看详情

一篇真正教会你开发移动端页面的文章

一篇真正教会你开发移动端页面的文章(一)一什么是像素?像素:一个像素就是计算机屏幕所能显示一种特定颜色的最小区域。这是像素的概念,实际上,在web前端开发领域,像素有以下两层含义:设备像素:设备屏幕的物理像... 查看详情

javaweb开发之spring详解之——spring的入门以及ioc容器装配bean(xml和注解的方式)spring整合web开发整合junit4测试

Spring框架学习路线Spring的IOCSpring的AOP,AspectJSpring的事务管理,三大框架的整合Spring框架概述什么是Spring? Spring是分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。所谓分层:SUN提供的EE的三层结构:web层、业务层、数据访问层... 查看详情

移动web开发--css像素设备独立像素设备像素之间关系

...像素,三者联系紧密又有很大的区别,而我们主要是在做移动端开发的时候需要更多地用到这些概念,那他们分别是指什么呢?概念CSS像素(CSSPixel):适用于web编程,指的是我们在样式代码中使用到的逻辑像素,是一个抽象概... 查看详情

响应式开发

1.像素  因为浏览器不是根据硬件像素宽度工作的,而是根基DIPs工作的叫什么设备独立像素值,这个有个链接给你  (http://yunkus.com/physical-pixel-device-independent-pixels/)2.DPR  设备像素比DPR(devicePixelRatio)是默认缩放为100%... 查看详情

python之wjango实现web开发详解---01(代码片段)

Python之Wjango实现Web开发详解—01本文将会详解:1、Web框架的搭建、2、框架以及数据库的初始化、3、应用的建立文章目录Python之Wjango实现Web开发详解---01一、介绍二、环境的配置以及初始化1、虚拟环境2、创建项目以及应用3、... 查看详情

一篇真正教会你开发移动端页面的文章

一篇真正教会你开发移动端页面的文章(二)psd图:现在移动端的设计图一般以iphone5(640px)和iphone6(750px)为准,ps左下角放大到100%,看宽度是多少,就是以多少为准。本篇以iphone6(750px为准),其它尺寸道理一样。psd原稿按照... 查看详情

移动端高清适配方案(解决图片模糊问题1px细线问题)

...在PC端,CSS的1px一般对应着电脑屏幕的1个物理像素,但在移动端,CSS的1px等于几个物理像素是和屏幕像素密度有关的。物理像素(physicalpixel)物理像素又被称为设备像素、设备物理像素、它是显示器(电脑、手机屏幕)最小的... 查看详情

移动端web开发初探之vuejs的简单实战

...,因为打算安卓和IOS平台同时使用。因此实际上就是在做移动端的web开发了。在这过程中遇到了不少有意思的东西。DEMO的github地址在这里内容提要:meta标签Vuejs的简单实战CSS移动端全屏背景CSS移动端动画初探meta标签这点与在PC... 查看详情