为了彻底弄懂CSS中的1px究竟有多长,我翻出了家里的卷尺

news2025/1/11 18:33:09

CSS是描述HTML文档如何显示的,在显示的过程中,HTML元素的长宽、间距、字体大小等等,都需要通过长度尺寸单位来表示。我们常常会说:字体大小16像素, 间距10个像素。这里的像素,就是CSS中的长度尺寸单位。一个像素写作1px,那么1px在屏幕中到底占用了多少的空间呢?

1px等于多少厘米

我们先来看一个实测。我写了一个很简单的网页,网页中有一个HTML元素:width: 300px,将这个网页在不同的显示器下全屏,然后用尺子量了一下(mac上的尺子工具要花钱,所以就人工量了)。

注意:上述图片由于拍摄角度问题,存在些许误差。

1cm大家都知道有多大。并且不管在哪儿显示,1cm就是1cm。厘米可以说是一种绝对单位。但是300px在不同的屏幕上,显示的长度却是不一样的。CSS中的像素px, 其实是一种逻辑单位

绝对长度单位、屏幕尺寸以及屏幕分辨率

要彻底理解CSS中的像素px,先从身边的事物开始讲起。

比如,我们经常会听到,iphone14的屏幕尺寸就是6.1英寸。英寸是英国那边的长度单位。1英寸 = 2.54厘米。也就是说,iphone14的屏幕尺寸是: 6.1 * 2.54 = 15.494厘米。像厘米,英寸这样的长度单位,叫做绝对长度单位

屏幕尺寸是如何计算的呢?其实是计算的屏幕对角线的长度。

那么,屏幕分辨率又是怎么回事呢?

屏幕分辨率:指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素*横向像素来表示屏幕的分辨率,如1960*1080

注意:这里的 像素px 与 CSS中的像素px ,不一定相等。

像素点其实就是一个一个的小方块,是屏幕展示画面的最小单位。下面这张图,可以比较形象的表示像素点:

iphone14的像素为:2532px * 1170px。其对角线的像素点个数为:

每英寸内包含的像素点个数为:2789 ➗ 6.1 ≈ 460;

这里的每英寸内包含的像素点个数被称为屏幕像素密度(pixels per inch),简写为:ppi。在计算机屏幕上,ppi 经常也被称为:dpi(dots per inch).

ppi越高,我们通过屏幕肉眼可见的画面就越清晰。

Chrome针对不同的ppi,对显示屏幕进行了分类,

Apple直接将屏幕分为了非高清屏、高清屏、超高清屏。我们平时所说的2k屏,4k屏,就是分辨率达到了特定值的屏幕。

设备像素比(DPR)与CSS中的px

在web开发中,有一个设备像素比(devicePixelRatio)的概念,简称为:DPR。在浏览器中(主要是移动端),可以通过window.devicePixelRatio来获取这个值。 这个值是像素大小的比率:一个 CSS 像素的大小与一个物理像素的大小的比。 简单来说,它告诉浏览器应使用多少屏幕实际像素来绘制单个 CSS 像素。CSS像素是一个逻辑上的概念。

桌面端电脑的DPR值,是可以自定义的。window.devicePixelRatio并不能获取准确的DPR值。 Windows电脑的DPR值,可以通过修改屏幕分辨率设置,一般情况下为1。 MAC OS的DPR值,可以通过系统的显示器设置查看。

假设在dpr=2的情况下,我们在CSS中的1px,在屏幕上,就需要用2个物理像素来表示。结合之前的内容,

∵ ppi = 每英寸内包含的像素点个数 
∴ 一个物理像素实际宽度 = 1 / ppi。
∴ 300px宽的HTML元素实际的宽 = 一个物理像素实际宽度 * 300 * DPR = 1 / ppi * 300 * DPR 

下面,我们来试着回答一开始的问题,1px到底等于多少厘米。下图列出了我电脑的配置以及计算过程:

可以看到,计算出来的过程与上面用卷尺量出来的长度是相符合的。

CSS中除了px可以表示长度以外,还有em, rem等。而移动端中的尺寸计算,还涉及到一个重要的概念:viewpoint。这些将在以后的内容中详细介绍。

小结

我们生活中提到的像素与web开发中的提到的像素是不同的。CSS中的1px最终表现出来,到底有多大的尺寸,取决于屏幕本身的分辨率和屏幕的分辨率设置。除了屏幕,我们平时也会说一个图片的大小是m像素 * n像素,这是逻辑像素。而图片的真实尺寸,是等于图片像素值 / 图片的dpi

最后

最近还整理一份JavaScript与ES的笔记,一共25个重要的知识点,对每个知识点都进行了讲解和分析。能帮你快速掌握JavaScript与ES的相关知识,提升工作效率。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

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

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

相关文章

软件测试行业真的不行了吗?那出路到底在哪?

下面这张图片,想必大家应该都知道~~~ 其实每个人都在金字塔里面,只不过大家的高低位置不同,当然,越在底层的人越多,越在高层的人越少~ 这也符合“二八定律”,“优胜劣汰”,“适者生存”~ 当你的…

c++中的this指针

1.this指针的引入 首先我们看下面这一段代码 class Date { public:void DateSet(int year, int month, int day){_year year;_month month;_day day;}void print(){cout << _year << "-" << _month << "-" << _day <…

论文速递:一种用于视觉定位的基于NLP思路的直线特征匹配算法

标题&#xff1a;Line as a Visual Sentence:Context-aware Line Descriptor for Visual Localization 作者&#xff1a;Sungho Yoon1 and Ayoung Kim2∗ 摘要 在机器人以及计算机视觉领域&#xff0c;除了通过使用图像匹配的特征点计算多视图几何来求解问题&#xff0c;还可…

12月的第一波驱动,来看看支持哪款游戏吧!

真的停不下来&#xff01;2022年的最后一个月&#xff0c;新游戏仍然在发力&#xff0c;《极品飞车&#xff1a;不羁》、《巫师 3&#xff1a;狂猎》、《传送门RTX版》都在12月正式上线&#xff01; 为了提供更好的游戏体验&#xff0c;英伟达、AMD、英特尔三巨头更是马不停蹄…

时间轮算法HashedWheelTimer

文章目录一.HashedWheelTimer是什么?二.能干什么?为什么需要这个东西?优点适用场景三.怎么用?使用步骤1.引入pom2.使用举例四.时间轮原理五.使用注意点1.一个HashedWheelTimer对象只有一个worker线程2.每次添加的任务只会执行一次3.时间轮的参数非常重要4.所有的任务都是顺…

rabbitmq基础1——消息中间件概念、Rabbitmq的发展起源和基本组件的作用流程

文章目录一、消息中间件1.1 概念1.2 作用1.2.1 消息队列持久化1.2.2 消息队列分发策略1.2.3 消息队列的高可用和高可靠1.2.3.1 一主多从共享集群1.2.3.2 一主多从同步集群1.2.3.3 多主多从同步集群1.2.3.4 多主转发集群1.2.3.5 Master-slave与Breoker-cluster组合方案1.3 初识A…

实战总结!18种接口优化方案的总结

之前工作中&#xff0c;遇到一个504超时问题。原因是因为接口耗时过长&#xff0c;超过nginx配置的10秒。然后 真枪实弹搞了一次接口性能优化&#xff0c;最后接口从11.3s降为170ms。本文将跟小伙伴们分享接口优化的一些通用方案。 1. 批量思想&#xff1a;批量操作数据库 优化…

Windows环境监控Linux服务器资源grafana+prometheus+mysql_exporter

Windows环境监控Linux服务器资源grafanaprometheusmysql_exporter 1.安装mysql (1)在虚拟机中下载wget命令 yum -y install wget(2)在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm(3)安装MySQL rpm -ivh mysql57-communi…

信仰崩了?Preact 开始采用 Vue3 的响应式设计

前言 不知大家有没有听过Preact这个框架&#xff0c;就算没听过Preact那也应该听过React吧&#xff1f; 一字之差&#xff0c;preact比react多了个p&#xff01;&#xff08;听起来咋不像啥好话呢&#xff09; 这个P代表的是 Performance&#xff0c;高性能版React的意思。P…

一篇博客详解朴素贝叶斯解分类问题

目录 回归问题 正则化Regularization 分类问题—类别之间是独立的 为什么不用回归解分类问题以概率的形式解分类问题 抽盒机率→分类机率正态分布覆盖 原理高斯分布函数 极大似然估计求最优参数 朴素贝叶斯法 用同一个协方差三步骤 模型的简化 回归问题 大概内容与之前的类…

工业ESD防静电闸机系统帮助您实现静电监控自如!

如何有效检测、消除静电&#xff0c;对元器件品质进行有效管控&#xff1f;现在工厂常用的设备有腕带接地、电阻测试仪&#xff0c;ESD防静电系统&#xff0c;但是这些都是在我们生产的同时去监控处理掉静电&#xff0c;那么有没有一种能直接从人体根源消除掉静电的系统呢&…

Postman 的简单使用

什么是Postman 在程序开发中用于调试网络程序或者跟踪网页请求。可以对网页进行简单的基本信息调试。Postman最早是作用chrome浏览器插件存在的&#xff0c;但是2018年初Chrome停止对Chrome应用程序的支持。所以现在Postman提供了独立的安装包&#xff0c;不再依赖于Chrome浏览…

MySQL innodb引擎架构分析-Buffer Pool

文章目录系列文章目录前言一、Buffer Pool是什么&#xff1f;二、Buffer Pool是如何工作的&#xff1f;1. free链2. flush链根据脏页的情况(阈值)和相关配置刷新自适应刷脏3. Lru升级链总结参数&#xff1a;innodb_buffer_pool_size参数&#xff1a;innodb_buffer_pool_instanc…

避免重要数据泄露的8种方式

得益于国家的大力支持&#xff0c;我国数字化经济已开启高速发展模式&#xff0c;数据已经成为企业不可或缺的重要资产&#xff0c;相对应的数据安全风险问题也随之而来。 数据泄露不仅给企业带来了财产损失&#xff0c;也给企业带来了极大的声誉威胁。以下是日常生活中企业和…

W公司对接奥迪Audi EDI项目案例

项目背景 奥迪&#xff08;Audi&#xff09;是德国大众汽车集团子公司奥迪汽车公司旗下的豪华汽车品牌&#xff0c;作为高技术水平、质量标准、创新能力、以及经典车型款式的代表&#xff0c;奥迪是汽车品牌之一。公司总部设在德国的英戈尔施塔特&#xff0c;并在中国等许多国…

ASA防火墙高级配置——NAT控制欲NAT豁免

作者简介&#xff1a;一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.NAT控制欲NAT豁免 1.禁用NAT控制 1&#xff09;出站(Outbou…

2021全国高校计算机能力挑战赛(初赛java)(部分)

数据1 input: 4 L G D U 7 L Y C N 2 T G E N 1 T R E P 4 output: 1 1 数据2 input: 6 L G D E 7 L Y C N 4 T G E N 4 T Y E P 3 L Y C N 2 T G D N 3 output: 1 1 package com.第四届校内模拟;import java.util.Scanner;/*** Author Lunau* Create 2022-12-09 18:02* Descri…

使用 ESP-DL 深度学习库基于 ESP32-S3 实现手势识别

人工智能改变了计算机与现实世界交互的方式。过去&#xff0c;人们通过微小的低功率设备和传感器获取数据&#xff0c;并传输至云端进行决策。这样的方式在设备连接性、成本和数据隐私方面带来了一定挑战。相对地&#xff0c;边缘人工智能是在物理设备上另一种处理数据的方式&a…

11.javase_面向对象1

一.面向对象介绍 1.1并不是一个技术&#xff0c;而是一种编程指导思想 1.2以什么形式组织代码&#xff1b;以什么思路解决问题 1.3为什么要用面向对象编程&#xff1a; 因为生活中&#xff0c;我们解决问题时&#xff0c;就是采用这种指导思想去解决的。 所以&#xff0c;我们写…

Codeforces Round #792 (Div. 1 + Div. 2)

比赛链接&#xff1a;Dashboard - Codeforces Round #792 (Div. 1 Div. 2) - Codeforces A: 思维 题意&#xff1a;Alice和Bob在玩游戏&#xff0c;每次等Alice交换两个不同位置的数后&#xff0c;Bob就会删除最后一个位置上的数&#xff0c;当最终只剩下一个数后&#xff0c…