为啥 CSS 中的绝对单位在不同的屏幕中没有真正显示为绝对单位?

Posted

技术标签:

【中文标题】为啥 CSS 中的绝对单位在不同的屏幕中没有真正显示为绝对单位?【英文标题】:Why absolute units in CSS are not shown really absolute in different screens?为什么 CSS 中的绝对单位在不同的屏幕中没有真正显示为绝对单位? 【发布时间】:2017-06-22 03:59:30 【问题描述】:

所谓的绝对单位(cmmminptpc ) 意思相同 CSS 与其他任何地方一样,但前提是您的输出设备具有高 足够的分辨率。

来源:W3C

当我将前面的代码放入我的项目中时,我希望到处都能看到 1cm...

.myColumn
   width: 1cm;

W3C 表示,对于低分辨率屏幕,大小写不一样。

为什么?

为什么他们不能正确生产1cm

在手机、平板电脑和...唯一的屏幕单位是像素

【问题讨论】:

【参考方案1】:

CSS units don't necessarily equate to exact dimensions。最后,屏幕上显示的每个 CSS 测量值最终都以像素为单位计算。

CSS 假定屏幕的 dpi 为 96,因此使用 in、pt 和 pc 通常是安全的,尽管不同的显示器分辨率或用户定义的缩放可能会影响您的结果。

但公制单位是另一回事,因为没有精确计算像素,所以浏览器会对数字进行四舍五入,以提供接近指定测量值的结果。这是W3C only recommends px, %, or em units 用于屏幕定位布局的原因之一。

【讨论】:

以上是关于为啥 CSS 中的绝对单位在不同的屏幕中没有真正显示为绝对单位?的主要内容,如果未能解决你的问题,请参考以下文章

ReactNative适配探讨

绝对单位&相对单位

css像素

屏幕适配

CSS 获取当前可视屏幕高度--使用calc()方法动态计算宽度或者高度

前端关于移动端屏幕适配