CSS 默认单位

14

我能否将默认单位从像素改为毫米? 例如,当我移动一个元素时,左和上的距离以毫米为单位而非像素为单位?

7个回答

23

在CSS规范中不存在“默认单位”。如果长度(除零外)缺少单位,则应将其视为错误(因此被忽略)。

怪异模式下(你几乎不应该使用怪异模式,它会使事情变得更加困难),大多数浏览器将执行错误恢复,并假设你的意思是像素(尽管规范禁止这样做)。

来自标准

<quirky-length>在语法上与<number-token>完全相同,并被解释为具有相同值的'px'长度。

(换句话说,怪异模式允许在受影响的属性中写入所有'px'长度而不带单位,类似于无单位的零长度。)

如果你正在使用屏幕媒体,请避免物理单位。大多数系统没有校准正确地计算DPI(因此,在从物理单位转换为监视器可理解的内容(像素)时,它们会出错)。


1
@Ilian,这个应该是被接受的答案。谢谢,Quentin - Maxim Mazurok

17

指定CSS单位对于非零值是必需的。浏览器可能会尝试猜测您的意思,但根据标准它仍然是一种有毛病的样式表。

也就是说,在CSS2中没有“默认单位”,只是浏览器可能会尝试帮助您,尽管它可能会忽略未指定单位的语句并视为无效。


1
@OP:例如,CSS没有默认的单位,因此您无法更改它们。 - T.J. Crowder

1

不,您无法更改默认单位,但只需在那里放置单位即可,这应该不会太麻烦:

#foo {
    left: 22mm;
    top: 20mm;
}

无论如何,您应该始终指定单位,因为这是必需的,而且浏览器可能会以不同的方式解释无单位值。


1

由于没有“默认单位”,在定位元素时需要提供单位,因此您可以使用“mm”而不是“px”。


-1

是的,您可以通过为单位分配变量来间接实现此操作:

--unit: 1mm;
--value: 10;
--variable: calc(var(--unit) * var(--value));

-1
据我所知,如果没有明确指定单位(如 'em' 或 '%'),那么 "px" 将会与数值连接起来,并且无法覆盖这种默认行为。

-2
不可能,因为不同的屏幕可能有不同的尺寸,但仍然具有相同的分辨率。最终会导致像素或相对符号不同。

2
这是不可能的,但你的理由是无效的。(他们解释了为什么使用毫米是一个坏主意,但没有解释为什么不能将无单位长度视为毫米) - Quentin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接