css中定义的dpi的用途

软件和网站开发以及相关技术探讨
回复
头像
驿窗project
帖子: 239
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

css中定义的dpi的用途

#1

帖子 驿窗project » 2024-11-01 10:38

css中规定了1inch=96dpi,这个规则的目的是什么,或者说用途是什么,我想了解一下。对于dpi, 我只知道打印或印刷相关的知识,css不太了解。

如果是为他打印到纸上,应该可以用分辨率(ppi)来处理。或者说,它不是为了打印?可如果不打印,应该不存在inch这种现实物理单位才对。
onlylove
论坛版主
帖子: 5369
注册时间: 2007-01-14 16:23

Re: css中定义的dpi的用途

#2

帖子 onlylove » 2024-11-01 14:57

为了显示器,显示器用dpi这个概念,然后大多数显示器的dpi在96左右,少部分高分屏,dpi就很高了,继续按照96dpi显示,导致图标之类太小,需要缩放
头像
驿窗project
帖子: 239
注册时间: 2019-01-17 12:17
系统: Arch/Debian
联系:

Re: css中定义的dpi的用途

#3

帖子 驿窗project » 2024-11-05 11:45

常用的液晶显示器是用物理发光点个数来标定显示器的分辨率,比如1920x1080,表示显示器横向有1920个发光点,纵向有1080个发光点。其中,每一个发光点都由三个RGB基色组成。

那么css的这个1inch=96dpi,应该是指 显示器在对角线方向一英寸长度上有96个发光点 的意思。假设当前显示器的dpi为96,那么css的目的是让一个像素对应一个显示器物理发光点,这个定义的结果,推测应该是让网页内容1:1显示的时候,就是按一个发光点对应一个像素来显示,其实也是定义了1:1的基准原则。

============================

不知道上面的理解是否正确,不过,我还是有一个问题没弄明白:

无论css定义是多少,当一张图片是300x300像素时,不同dpi的显示器上显示一定会存在显示尺寸(1:1)上的差异,而这个差异必须用缩放来解决,因为图片尺寸已经固定为300x300。即,网页在显示时,浏览器应该只关心图片的实际像素是300x300还是300x600,而不关心显示器1inch=96dpi还是1inch=217dpi,因为无论显示器是哪个,最后都由浏览器来缩放解决。

这种情况下,1inch=96dpi,好像可以随便定义,比如就按古老的值1inch=72dpi定义就可以,不需要再搞个1inch=96dpi出来。

那么,1inch=96dpi的意义到底是什么,是不是就单纯是为了定义1:1的规则?然后让浏览器知道,在缩放为100%比例来显示网页时,其实是按1inch=96dpi来显示?如果是的话,就有点怪,我理解的是,显示器的dpi值,应该从驱动提供给浏览器(或者系统API?这个完全不懂,纯猜 ),浏览器读取到显示器实际的dpi后,就有了1inch=???dpi结果,用这个结果来当1:1基准就可以,完全不需要1inch=96dpi这个参数。

上面的逻辑,我在哪里搞错了?
回复