移动端布局(一)dp、dip、PPI、dpr、图片模糊

移动端适配dpr 这是将layout viewport(布局视口)宽度设置为设备屏幕宽度,这句就得到了理想视口。 阅读详情

注: 此篇文章引用多篇文章,在文章的结尾处有注明文章的来源

高清屏

即高清屏,把更多的像素压缩至一块屏幕里,从而达到更高分辨率显示的细腻程度,使人眼无法分辨出单个的像素。

物理像素(dp)

物理像素,设备的硬件像素,生产出来就已经设定好了的真实像素,不能被改变。是计算机屏幕渲染画面(图像)的最小单位,整个图像是由像素单位组成的,这个单位的形状通常都是会发光的正方形方格,

在相同尺寸屏幕中,像素点越多,像素点就越小就越清晰(因为你在该屏幕内容纳更多的像素,像素点自然会缩小),像素点越少,像素点就越大,图像就不清晰,因为你都能看到像素点的锯齿状。

分辨率指的就是水平垂直方向上像素点的数量,比如1920*1080表示屏幕水平方向上有1920个像素点,垂直方向上有1080个像素点。

css像素

网页中,用于控制元素样式的像素,它也属于独立像素,浏览器在显示页面时,需要将css像素转为物理像素在呈现。

设备独立像素(dip)

也叫虚拟像素、逻辑像素,是我们程序软件里使用的像素,它是相对于物理像素来计算的,表示一个物理像素由多少个逻辑像素来表示,也就是说可以人为的定义让1个独立像素等于多少个物理像素。

注:在我们的浏览器中css像素就是独立像素

为什么要有设备独立像素呢?

在早期普通屏中,只有物理像素,没有独立像素,在不缩放的情况下,1个css像素就是1个物理像素,比如iphone3手机屏幕是320 * 480px的分辨率,那么width等于320px的元素是占满整个屏幕的。从iphone4开始苹果公司推出了高清屏,分辨率变成640 * 960px,也就是普通屏一个像素点有高清屏两个像素点那么大,因为相同尺寸的屏幕要放满640 * 960px的像素,只能是将像素点面积缩小1倍,如果还按照1物理像素就是1个css像素来渲染图像,那么width等于320px的元素只会占据屏幕宽度的一半,如何让iphone4和iphone3显示相同呢? 在开发中为了让不同设备上有一样的显示效果,就引入了独立像素,让网页中css像素成为独立像素,在iphone3中不变1个css像素就是1个物理像素,但是 在iphone4上,在不缩放的前提下,1个css像素等于2个物理像素,这样iphone4中width等于320px的元素等于640个物理像素,正好占满iphone4的宽度, font-size: 20px; 的字体在 iphone3 和 iphone4 上的尺寸也相同,只不过在 iphone4 上的字体更清楚。

还有一个因素会引起css中px的变化,那就是用户缩放。例如当用户把页面放大一倍,css像素不会变,但是css中1px所代表的物理像素也会增加一倍,反之把页面缩小一倍,css中1px所代表的物理像素也会减少一倍。

该段文字引用于https://blog.youkuaiyun.com/weixin_30301449/article/details/96200494

设备像素比(DevicePixelRatio):

DPR = (设备像素dp / 独立像素dip)*scale(表示缩放大小为百分之几),物理像素和独立像素的比例,表示由一个物理像素由多少个css像素来表示。

在iphone4上dpr是2,但不是所有设备都是2,不同设备的dpr都是不同的。
下列展示了不通过设备物理像素和逻辑像素的关系。
在这里插入图片描述

像素密度(PPI):

表示每英寸面积内像素的数量(疏密程度),PPI是一个定值,是一个固定参数,PPI的值越高,表示在一定尺寸的屏幕上像素数量越多。
在这里插入图片描述

在这里插入图片描述

PPI的计算公式: 屏幕边的物理像素除以物理尺寸

图片模糊

同一张图片,在普通屏显示正常,但在高清屏出现模糊。原因是一个物理像素的点分成了四个像素的点进行显示。

  1. 1个位图像素是栅格图像(如:png, jpg, gif等)最小的数据单元。每一个位图像素都包含着一些自身的显示信息(如:显示位置,颜色值,透明度等)。理论上,1个位图像素对应于1个物理像素,图片才能得到完美清晰的展示。

  2. 1个位图像素对应于4个物理像素,由于单个位图像素不可以再进一步分割,所以只能就近取色,导致图片看起来比较模糊。

  3. 当1个位图像素占据少于1个物理像素(压缩图像),图片就会锐化。

假设我有一张图片,图片素材尺寸为200 * 200的位图像素,我们设置css:width为200px,height为200px;在ipnone3上图片渲染为200px * 200px的位图像素是清晰的,但是在高清屏iphone4上图片渲染为400px * 400px,由于位图像素不能分裂,哪多出来的200像素怎么生成,于是只能使用线性插值算法,颜色近似选取(选择相似的颜色填充像素块),于是图片就模糊了。
在这里插入图片描述

在这里插入图片描述

位图: 由多个像素点组成的点阵图像。

缩小图像(压缩图片):
称为下采样(subsampled)或降采样(downsampled)的主要目的是两个:
使得图像符合显示区域的大小;
生成对应图像的缩略图;
下采样的原理:
对于一幅图像尺寸为MN,对其进行s倍的下采样,即得到(M/s)(N/s)尺寸的分辨率图像,当然,s应该是M和N的公约数才可以,如果考虑是矩阵形式的图像,就是把原始图像s*s窗口内的图像变成一个像素,这个像素点就是窗口内所有像素的均值 Pk = (∑ Xi)/ S^2

放大图像:
称为上采样(upsampling)或图像插值(interpolating)的主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上。
上采样的原理:
图像放大几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。插值算法还包括了传统插值,基于边缘图像的插值,还有基于区域的图像插值。

解决图片模糊的方法:

方法一:
因此,要想让视网膜屏幕下的图片高清晰显示,我们需要的图片的原始大小不能是200×200像素,而需要2倍高宽,即400×400像素,CSS像素限制依然是:

img {
    width: 200px;
    height: 200px;
}

在这里插入图片描述
此时,视网膜屏幕下图片就显示OK了(非视网膜屏幕图片被压缩(下采样)-减少像素取样——资源浪费!)(© smashingmagazine):

也就是说在普通屏下也适用二倍图
在普通屏幕下,200×300(CSS pixel)img标签,所对应的物理像素个数就是200×300个,而两倍图片的位图像素个数是200×300×4个,所以就出现一个物理像素点对应4个位图像素点,但它的取色也只能通过一定的算法取某一个位图像素点上的色值,这个过程叫做(downsampling),肉眼看上去虽然图片不会模糊,但是会觉得图片缺少一些锐利度,或者是有点色差,
在这里插入图片描述

所以最好的解决办法是:不同的dpr下,加载不同的尺寸的图片。不管是通过CSS媒体查询,还是通过JS条件判断都是可以的。

方法二:
准备两份素材,普通和高清素材。并且通过素材文件名后缀来区分,比如普通素材名称为apple.png,那么高清素材名称就为apple@2x.png,自然高清素材是普通素材面积的四倍,系统会优先使用高清素材,但自动缩小到普通素材的大小,这样也就不存在图片拉伸的问题了。当我们需要渲染一张32x32的图片,我们实际上需要准备64x64的素材。

方法三:
查询像素密度:准备两种大小但是一样的图片。利用css的媒体查询或者JS的 Retina.js来调取图片。(浏览器支持是一个问题)

可以通过“device-pixel-ratio”属性或者其扩展属性“min-device-pixel-ratio”和“max-device-pixel-ratio”。这几个Media Queries(媒体查询)可以使用background-image为Retina准备高精密度像素的图片。

.icon {
  background-image: url(example.png);
  background-size: 200px 300px;
  height: 300px;
  width: 200px;
}

@media only screen and (-Webkit-min-device-pixel-ratio: 1.5),
only screen and (-moz-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (min-device-pixel-ratio: 1.5) {
  .icon {
    background-image: url(example@2x.png);
  }
}

文章转载自:
https://www.cnblogs.com/fangpengchengbupter/p/7677707.html%20%28%E4%B8%8A%E9%87%87%E6%A0%B7%E5%92%8C%E4%B8%8B%E9%87%87%E6%A0%B7%29 (上采样和下采样)

https://www.zhangxinxu.com/wordpress/2012/10/new-pad-retina-devicepixelratio-css-page/) (张鑫旭博客)

https://www.infoq.cn/article/development-of-the-mobile-web-deep-concept(李光毅博客)

https://www.cnblogs.com/superlizhao/p/8729190.html

https://www.bbsmax.com/A/gVdnO0G1zW/

15-移动端布局基础——DPI、PPI、物理像素、DPR、viewportcss像素、DPR 移动端布局基础——DPI、PPI、物理像素、css像素、DPR、viewport、DPR 阅读详情

相关推荐

移动端适配

引言 移动端适配一向是很令人头大的问题,因为随着移动设备型号数量的爆发式增长,手机屏幕尺寸越来越多样化,网页内容自适应屏幕尺寸进行显示的需求也就越来越强烈。原本可能通过百分比/媒体查询等简单手段就可以常见的适配问题,但是对于页面有复杂结构或者视觉上有特殊要求的,就需要通过其他手段来解决了。 像素基础 像素 像素是一个老生常谈的问题了。不论是做前端开发还是做UI设计,都离不开这个话题。其实真要深究起来,像素是一个十分复杂的概念。追溯到上世纪6、70年代,计算机的输出设备还是点阵式打印机,如何使打印机打

weixin_57259948的博客 1599

如何理解dpr

首先如何在设备上实现1px边框: 物理像素: 在视网膜屏下面, 显示的实际的像素颗粒,iphone6分辨率7501334px 逻辑像素: 可以认为成就是设备的宽度,css设置的像素,iphone6逻辑像素7501334px dpr = 物理像素(设备像素) /逻辑像素(设备独立像素) 所以iphone的dpr为2 解决方式,第一种: 通过媒体查询方式: .border { border: 1px solid #999 } @media screen and (-webkit-min-device-p

web_gutianle的博客 3963

手机分辨率和网页中的 px 是一回事吗?

大家好,这里是修真院前端小课堂,今天给大家分享的是 《手机分辨率和网页中的 px 是一回事吗?》 1. 背景介绍 对于 pc 端适配的问题(除开布局方式),在不改变电脑分辨率,和缩放网页状态下。通常只需要设置中设置 viewport 即可。但是放在手机上时候就不一样了,你需要了解 px,dips,ppi 等等有关知识,才能应付移动端各种适配问题以及坑,光是 Android 各种花式...

IT修真院:初学者转行到互联网的聚集地 1476

图文并茂带你弄懂物理分辨率、分辨率、物理像素、逻辑像素、dpr、ppi

物理像素(physical pixel)又可以称为设备像素像素和分辨率有关系,如分辨率为 1920x1080 ,宽就有1920个物理像素 高就有1080个物理像素我们来感受一下这些物理像素点,像一个个小格子,一个个小点,看得很清楚再细看每个小点,每一个小像素点都是由三原色RGB组成,显示器再控制明暗程度就可以显示想要的效果图案,从定义上来看,像素是指三原色及其灰度的基本编码。实际的开发是以物理像素为准的吗?这两个手机的宽和高都是一样的,很显然高清屏分辨率4 * 8比标清屏的2 * 4要清晰一些。

前端工程师 · Vue 生态深耕者,专注多端与工程化 4956

设备像素、css 像素、设备独立像素、dpr、ppi 之间的区别?

设备像素指的是物理像素,一般手机的分辨率指的就是设备像素,一个设备的设备像素是不可变的。 css像素和设备独立像素是等价的,不管在何种分辨率的设备上,css像素的大小应该是一致的,css像素是一个相对单位,它是相 对于设备像素的,一个css像素的大小取决于页面缩放程度和dpr的大小。 dpr指的是设备像素和设备独立像素的比值,一般的pc屏幕,dpr=1。在iphone4时,苹果推出了retina屏幕,它的dpr 为2。屏幕的缩放会改变dpr的值。 ppi指的是每英寸的物理像素的密度,ppi越大,屏幕的

liuhao9999的博客 759

剖析设备像素、CSS 像素等的特性与用途

设备像素(Device Pixel)是物理屏幕上的最小显示单元。它表示屏幕上实际存在的像素数量。设备像素是硬件层面的概念,通常不适合直接在 CSS 中使用。CSS像素(CSS Pixel)是网页布局中使用的单位,表示在浏览器中渲染的“虚拟像素”。它与设备像素不同,通常是通过浏览器的缩放机制将设备像素转换为更适合布局的单位。设备独立像素(DIP)是一个逻辑单位,用于表示一种与设备硬件分辨率无关的标准像素。它常用于移动端开发。

向着太阳迎着光 1203

请解释设备像素、CSS 像素、设备独立像素、DPR、PPI 之间的区别?

设备像素,也称为物理像素,是屏幕上能够显示的最小物理单位。每个设备像素代表屏幕上的一个点,用于显示颜色。

程序员学习园地。 1278

基于Dify1.9知识库流水线模板的思考——图像和表格数据处理

本文探讨了Dify1.9知识库流水线中LLM节点对文档图像/表格增强处理的优化方案。针对当前仅在内容后追加说明的简单做法,提出了结构化标注的改进方法:通过唯一ID和注释块标记图像/表格及其描述,确保内容可精准对齐。文章详细阐述了该方案的解析处理流程、数据结构化表示方法,以及在RAG检索和文档还原中的具体应用。关键经验包括:必须结构化标注非文本内容、LLM增强的必要性、语义向量化处理等。该方案解决了原始方法在内容重排、相似元素区分和检索精度等方面的问题。

roseey的专栏 1440

移动端适配 - 原理篇

移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题: 1px问题 UI图完美适配方案 iPhoneX适配方案 横屏适配 高清屏图片模糊问题 ... 上面这些问题可能我们在开发中已经知道如何解决,但是问题产生的原理,以及解决方案的原理可能会模糊不清。在解决这些问题的过程中,我们往往会遇到非常多的概念:像素、分辨率、PPI、DPI、DP、DIP、DPR、视口等等。 本文...

782

基于树莓派5的AR头显开发:从硬件选型到Unity整合全解析

增强现实(AR)技术通过将虚拟信息叠加到真实世界,为用户提供沉浸式交互体验。其核心原理依赖于计算机视觉进行环境感知与空间定位,并结合实时3D渲染实现虚实融合。在工程实践中,嵌入式平台因其低成本、低功耗特性,成为探索AR应用边界的重要载体。本项目以树莓派5为核心,通过集成OpenCV进行ArUco标记识别实现精准空间定位,并利用MediaPipe完成手势交互,最终在Unity引擎中完成虚实场景的实时渲染与融合,为开发者提供了一个完整的、可亲手实践的AR系统开发方案。

weixin_32430941的博客 254

Oracle-如何修复undo坏快

undo出现坏快,导致数据库宕机,无法启动

qqqyyy0422的博客 570

java中浏览器电脑的分辨率_关于移动端适配,你必须要知道的

原标题:关于移动端适配,你必须要知道的来自公众号:code秘密花园导读移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题:1px问题UI图完美适配方案iPhoneX适配方案横屏适配高清屏图片模糊问题...上面这些问题可能我们在开发中已经知道如何解决,但是问题产生的原理,以及解决方案的原理可能会模糊不清。在解决这些问题的过程中,我们往往会遇到非常多的概念:像素、分辨率、PPI、DP...

weixin_32744173的博客 538

Cesium中实现GPU计算的泥石流地形侵蚀

通过模拟分析,可以提前识别可能发生泥石流的区域,为防灾减灾提供依据,及时发布预警,避免或减少人员伤亡和财产损失。:在建设公路、桥梁、水库等基础设施时,通过泥石流模拟分析,可以预测泥石流可能对这些设施的影响,帮助工程设计者采取合适的防护措施,确保设施的安全性。:模拟分析有助于为灾后救援工作提供科学依据,确定受灾区域的范围、救援难度等,为救援队伍制定合理的行动方案,提升救援效率。:泥石流是山区常见的地质灾害之一,通过模拟分析可以评估某一地区发生泥石流的风险,指导土地使用规划、人口迁移等决策。

weixin_43481439的博客 1321

移动端 苹果和安卓的适配问题_移动端适配,这篇就够了

点击上方“刘望舒”,选择“星标”多点在看,就是真爱作者:ConardLi|来源:公众号code秘密花园导读移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题:1px问题UI图完美适配方案iPhoneX适配方案横屏适配高清屏图片模糊问题...上面这些问题可能我们在开发中已经知道如何解决,但是问题产生的原理,以及解决方案的原理可能会模糊不清。在解决这些问题的过程中...

weixin_39793794的博客 2721

手机相机基础技术解析:从硬件到算法的全面指南

手机相机的成像过程可简化为的链路,其核心硬件包括 镜头、CMOS传感器、ISP(图像信号处理器) 以及配套的软件算法。

weixin_44239603的博客 2450

Python爬取天天基金网历史数据

前言 最近开始学习基金????,感觉需要收集一些数据统计分析才靠谱????毕竟给A股交学费的感觉可不好受???? 网上有很多公开的数据,我这里选择的是天天基金网进行爬取 页面分析 接口我分析过了,有些验证不太好获取数据,所以直接从html提取 在天天基金网中随便选择一款基金,然后点击进入历史数据页面 容易定位出日增长率的css选择器 还有翻页按钮 程序编写 使用selenium打开chrome浏览器进行爬取,全代码如下 from selenium import webdriver from sel

JiajunBernoulli的博客 2950

layui移动端适配_关于移动端适配方案都在这里

导读移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题:1px问题UI图完美适配方案iPhoneX适配方案横屏适配高清屏图片模糊问题...上面这些问题可能我们在开发中已经知道如何解决,但是问题产生的原理,以及解决方案的原理可能会模糊不清。在解决这些问题的过程中,我们往往会遇到非常多的概念:像素、分辨率、 PPI、 DPI、 DP、 DIP、 DPR、视口等等,你真的能分...

weixin_39928818的博客 1271

YOLOv11改进策略【损失函数篇】| 替换激活函数为Mish、PReLU、Hardswish、LeakyReLU、ReLU6

在卷积神经网络中,激活函数通过在神经网络中引入非线性,使网络能够学习和逼近复杂函数,从而处理复杂的模式识别与分类问题。

Limiiiing的博客 2798

关于移动端适配,你必须要知道的

导读移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题:1px问题UI图完美适配方案iPhoneX适配方案横屏适配高清屏图片模糊问题...上面这些问题可...

cpongo11的博客 333

SOME/IP协议详解「1.1·面向服务与面向信号」

面向信号和面向服务的区别,和举例子

雪云飞星的博客 5656

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

CSS移动端开发及less使用方法

的出现,使得即使在【高清屏】下,例如苹果的retina屏,也可以让元素有正常的尺寸,让代码不受到设备的影响,它是设备厂商根据屏幕特性设置的,无法更改。与屏幕(设备独立像素)等宽的布局视口,称之为理想视口;在无法缩放的情况下(标准情况下):1css像素=1设备独立像素,即:dpr=物理像素/设备独立像素。5、css像素:逻辑像素,又称程序员像素,是我们在编写css,js,less时使用的像素,单位也是px。3、屏幕密度(ppi):又称屏幕像素密度,是指屏幕上每英寸里包含的物理像素点个数,单位是ppi,是。

2511_94359082的博客 1391

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

移动端适配知识汇总

目录背景:复用模块:实现效果:关于部署: 背景: 由于目前使用微前端架构,门户一共有 framework,portal,mall,cloud 四个项目,除了共用头部,底部,登录,权限等业务模块外,在代码层面也存在 大量重复代码可以进行抽离复用,抽离后各项目可共用,且可根据项目需求额外 添加自定义代码 复用模块: 全局状态管理(globalState):每个项目的状态管理(store)中都至少存在 user,common 两个模块,可进行抽离复用 全局状态监听(globalStore),每个项目的监听状态变

cpa0701的博客 591

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

前端开发移动端网页适配常识以及方法

随着携带设备的越来越普及,移动端项目会越来越多的接触。所以想给大家介绍一下移动端适配那点事。 手机分辨率是指什么\color{#159957}{手机分辨率是指什么}手机分辨率是指什么 物理像素(Pel, pixel, pictureelement) 这是 iPhone4 的屏幕像素排列图,每个像素都是由三原色组成的单元。 1080*1920就是横向1080 纵向1920个物理像素点。 随着手机发...

CherryCola_zjl的博客 3165

html %3cli水平,响应式布局、移动端适配

导读适配问题,是前端开发中经常会遇到的,里面可能会遇到非常多的问题,比如:1px 问题UI 图完美适配方案iPhone 适配方案横屏适配高清屏图片模糊问题...上面这些问题有的人可能已经知道如何解决了,但是问题产生的原理,以及解决方案的原理可能会模糊不清或者一知半解。而在探寻这些问题的过程中,我们会遇到非常多的概念,比如:像素、分辨率、PPI、DPI、DP、DPR、视口扽等,这些概念往往分不清。这...

weixin_39789094的博客 430

layui移动端适配_关于移动端适配,你必须要知道的

导读移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题:1px问题UI图完美适配方案iPhoneX适配方案横屏适配高清屏图片模糊问题...上面这些问题可能我们在开发中已经知道如何解决,但是问题产生的原理,以及解决方案的原理可能会模糊不清。在解决这些问题的过程中,我们往往会遇到非常多的概念:像素、分辨率、PPI、DPI、DP、DIP、DPR、视口等等,你真的能分清这些概念的意义吗?...

weixin_39730263的博客 2119

页面布局方案

页面布局 静态布局(Static Layout) 使用CSS逻辑像素单位px进行定宽布局,是PC端最常见形式。 流式布局(Liquid Layout) 流式布局的特点是页面元素宽度按屏幕分辨率进行适配调整,但整体布局不变,典型代表是栅格系统。页面主要划分区域尺寸使用百分比,并搭配min-*、max-*属性属性。 自适应布局(Adaptive Layout) 创建多个静态布局,每个...

JunChow 3022
上一篇: 什么是替换元素
下一篇: 移动端布局(二)关于视口
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值