8cm等于多少像素_「前端剑指offer第5期」物理像素、逻辑像素、CSS像素、PPI、设备像素比是什么...

3ecbb51b68e28d82c41218866fbf1445.png

8204e1c0db2f98cdac4b4828036f2a30.png

# 提问

物理像素、逻辑像素、CSS像素、PPI、设备像素比是什么?

# 回答

  • 物理像素代表屏幕上有多少个点,比如1080x2340表示屏幕一排包含1080个物理像素点。
  • 逻辑像素表示屏幕展示物体的视觉尺寸是多少。逻辑像素相同表示物体看起来或者打印出来大小一样,物理像素点越小,一个逻辑像素包含点物理像素点就越多,看起来就越清晰。
  • 一般情况下CSS像素等同于逻辑像素,但浏览器可以放大,手机也有放大模式,此时就不再相等。
  • PPI是屏幕对角线的物理像素的个数除以对角线英寸数。
  • 设备像素比是在水平或者垂直方向,在同一排一个逻辑像素能放几个物理像素。

# 解析

物理像素

也称为设备像素,屏幕的最小物理单位。需要注意的是一个像素并不一定是一个小正方形区块,也没有标准的宽高,只是用于显示丰富色彩的一个“点”而已。可以参考公园里的景观变色彩灯,一个彩灯(物理像素)由红、蓝、绿小灯组成,三盏小灯不同的亮度混合出各种色彩。比如当我们打开Iphone12的官网,产品参数里“2340 x 1080 像素分辨率”指的就是设备像素,表示屏幕水平有1080个点,垂直有2340个点。

82cb368c9085cefdf5e752607c051189.png

背景故事:关注手机配置的同学会听到华为P40排列用的是“周冬雨排列”(上图右上角),显示效果没有三星屏的排列好。之所以国产屏用这种奇怪的排列方式,是因为起步晚其他排列早被其他厂商申请了专利。

逻辑像素

也称作设备独立像素。比如我们偶尔会说“电脑屏幕在 2560x1600分辨率下字太小了,我们把它调为 1440x900”,这里的“分辨率”(非严谨说法)指的就是设备独立像素。可以通过 window.screen.width/ window.screen.height 查看。另外,平时我们所说的 iphone12mini的逻辑像素是375 x 812,iPhone12 Pro Max的的逻辑像素是400 x 880。

一个设备独立像素里可能包含1个或者多个物理像素点,包含的越多则屏幕看起来越清晰。

16c52cdda46104c41192b634d9dcffc1.png

仅需要物理像素难道不够吗?为什么要有逻辑像素呢?因为物理像素仅代表像素点的个数,并没有有规定一个点实际的尺寸是多少。假设有一个按钮,宽度用100个物理像素表示,因屏幕物理像素排列方式和密度的差异,不同屏幕上实际的视觉宽度必然不一样。而逻辑像素相同就表示希望按钮在不同屏幕上看起来一样大。

PPI (pix per inch)

每英寸的物理像素数。以尺寸为5.4英寸(屏幕对角线长度)、分辨率为1080 x 2340的iPhone12 mini为例, ppi = Math.sqrt(1080*1080 + 2340*2340) / 5.4 ,值为 476PPI。

CSS像素

浏览器使用的单位,用来精确度量网页上的内容,比如 div { width: 100px; }。在一般情况下(页面缩放比为1),1个CSS像素 等于 1个设备独立像素。比如,假设把屏幕独立像素分辨率设置为1440x900,给页面元素设置为宽度720px,则视觉上元素的宽度是屏幕宽度的一半。这也解释了为什么当我们把独立像素分辨率调高后网页的文字感觉变小了。当页面缩放比不为1时,CSS像素和设备独立像素不再对应。比如当页面放大200%,则1个CSS像素等于4个设备独立像素。

设备像素比

设备像素比(DevicePixelRatio)指的是设备物理像素和逻辑像素(device-independent pixels, dips)的比例 。比如iPhone12 mini的DPR是3。

作者 @饥人谷若愚

「前端剑指offer第1期」CSS选择器优先级是怎样计算的?

「前端剑指offer第2期」一侧定宽、一侧自适应,尽量多的方案实现?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python学习之路:函数介绍

编程:面向对象:华山派----->类---->class 面向过程:少林派----->过程--->def 一段段的函数和功能包含在过程中 函数式编程:逍遥派--->函数---->def 过程就是没有return返回值的函数 函数的定义:数学…

php中获取系统信息的方法

2019独角兽企业重金招聘Python工程师标准>>> $root getenv(DOCUMENT_ROOT); 服务器文档根目录$port getenv(SERVER_PORT); 服务器端口$file getenv(SCRIPT_NAME); 当前执行文件$ua getenv(HTTP_USER_AGENT); 用户UA$method getenv(REQUEST_METHOD); 请求方法$p…

[独家全程图解]ThinkPHP6框架的下载与安装

http://www.php.cn/wenda/159638.html 1. ThinkPHP大事记 2017年4月27日,ThinkPHP5.1-beta.1发布 2017年12月31日, ThinkPHP5.1.0发布,标志着快速进入迭代期 2019年3月3日, ThinkPHP5.1已更新迭代到第35个版本(5.1.35) 2019年3月22日, ThinkPHP5.2的 dev 开发版本也发布了 …

玩转CSS3(一)----CSS3实现页面布局

请珍惜小编劳动成果,该文章为小编原创,转载请注明出处。 摘要: CSS3相对CSS2增加了一些新的布局方式:多栏布局和盒子布局。在这篇文章中,将对CSS2的布局进行简单的回忆,并总结CSS3的布局方式。DIVCSS其实是…

openglshader实现虚拟场景_云桌面,实现办公终端的统一管理与运维

随着无纸化办公和智能化办公的不断推进,在办公过程中传统PC电脑的缺点愈发凸显。传统电脑的性能会随着使用时长增加而降低,系统维护处理时效性较弱,出现问题需要运维人员到现场解决,费时费力。如果出现更换设备的情况,…

前端 == Ajax

Django-Ajax 1.目录 ajax 准备知识:json ajax 简介 jquery 实现的ajax js 实现的ajax jquery.serialize() 上传文件 同源策略与jsonp 2.准备知识:json 1.什么是 json ? 个人回答: json 的作用是 数据交换格式。(通过序列化和反序…

Objective-c 程序结构

类是Objective-c的核心,Objective-c程序都是围绕类进行的。Objective-c程序至少包含以下三个部分: 1、类接口:定义了类的数据和方法,但是不包括方法的实现代码。 2、类实现:仓储 了实现类方法的代码。 3、应用程序&…

WordPress 5.0 换回老版”Classic Editor”经典编辑器教程

WordPress 5.0 正式采用了全新的“Block Editor”编辑器,从而替换了原有“Classic Editor”编辑器,相信有很多人和子凡一样会不习惯或者不喜欢新编辑器,那么新版 WordPress 该如何换回原来的 WordPress 编辑器呢? 不可否认 WordPr…

html5视频播放

<video width"320" height"240" controls"controls"> <source src"test.mp4" type"video/mp4"> Your browser does not support the video tag. </video> IE9对于video标签确实是不支持的&…

判断是否存在此对象_JVM的垃圾回收机制,判断对象是否死亡

这节我们主要讲垃圾收集的一些基本概念&#xff0c;先了解垃圾收集是什么、然后触发条件是什么、最后虚拟机如何判断对象是否死亡。一、前言我们都知道Java和C有一个非常大的区别就是Java有自动的垃圾回收机制&#xff0c;经过半个多世纪的发展&#xff0c;Java已经进入了“自动…

Software--Developer Tools_

Log4net 日志框架 由 Java log4j 移植到 .Net 平台的开源日志框架。 http://logging.apache.org/log4net/index.html 转载于:https://www.cnblogs.com/masterSoul/p/7832317.html

界面布局-(资料收集)

jQuery多列网格式拖动布局插件Gridster.js

MFC学习中遇到的小问题和解决方案

MFC学习中遇到的小问题和解决方案 1 清除combox里面的内容 ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent();//消除现有所有内容2 如何获取鼠标指针的位置GetWindowRect 详情见657面 超市管理系统 3 如何获取combox下拉列表的索引&#xff1b;int selgetcursel;get…

linux 进程监控和自动重启的简单实现

目的&#xff1a;linux 下服务器程序会因为各种原因dump掉&#xff0c;就会影响用户使用&#xff0c;这里提供一个简单的进程监控和重启功能。 实现原理&#xff1a;由定时任务crontab调用脚本&#xff0c;脚本用ps检查进程是否存在&#xff0c;如果不存在则重启并写入日志。 1…

建造者模式(Builder)

建造者模式&#xff08;Builder&#xff09;   工厂类模式提供的是创建单个类的模式&#xff0c;而建造者模式则是将各种产品集中起来进行管理&#xff0c;用来创建复合对象&#xff0c;所谓复合对象就是指某个类具有不同的属性&#xff0c;其实建造者模式就是前面抽象工厂模…

万兆网卡实际吞吐量_AKITIO 10G/NBASE-T PCIe 网卡开箱拆解评测

前言今天来到koolshare评测室的是AKITIO的10G/NBASE-T PCIe扩展网卡(官网链接)&#xff0c;采用PCIe2.0 x4接口&#xff0c;支持10G/5G/2.5G/1G/100Mbps&#xff0c;可以在100m的CAT-6A线缆上达到最高10Gbps的链接速率&#xff0c;或者在100m的CAT-5e线缆上达到最高5Gbps的链接…

thinkphp 学习 (资料收集)

thinkphp 官网&#xff1a; http://www.thinkphp.cn/ ThinkPHP6入门指南 https://www.kancloud.cn/madnesslin/thinkphp ThinkPHP5.0.24完整版 http://www.thinkphp.cn/down/1278.html ThinkPHP5.0完全开发手册 https://www.kancloud.cn/manual/thinkphp5/118003

EF实体框架数据操作基类(转)

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述&#xff1a;实体框架数据仓储的操作接口&#xff0c;包含增删改查接口////------------------------------------------------------------…

【RabbitMQ】8、RabbitMQ之mandatory和immediate

1. 概述 mandatory和immediate是AMQP协议中basic.publish方法中的两个标识位&#xff0c;它们都有当消息传递过程中不可达目的地时将消息返回给生产者的功能。对于刚开始接触RabbitMQ的朋友特别容易被这两个参数搞混&#xff0c;这里博主整理了写资料&#xff0c;简单讲解下这两…

获取异常信息_如何在 ASP.NET Core 中实现全局异常拦截

异常是一种运行时错误&#xff0c;当异常没有得到适当的处理&#xff0c;很可能会导致你的程序意外终止&#xff0c;这篇就来讨论一下如何在 ASP.Net Core MVC 中实现全局异常处理&#xff0c;我会用一些 样例代码 和 截图 来说明这些概念。全局异常处理其实在 ASP.Net Core MV…