我能否将默认单位从像素改为毫米? 例如,当我移动一个元素时,左和上的距离以毫米为单位而非像素为单位?
在CSS规范中不存在“默认单位”。如果长度(除零外)缺少单位,则应将其视为错误(因此被忽略)。
在 怪异模式下(你几乎不应该使用怪异模式,它会使事情变得更加困难),大多数浏览器将执行错误恢复,并假设你的意思是像素(尽管规范禁止这样做)。
来自标准:
<quirky-length>在语法上与<number-token>完全相同,并被解释为具有相同值的'px'长度。
(换句话说,怪异模式允许在受影响的属性中写入所有'px'长度而不带单位,类似于无单位的零长度。)
如果你正在使用屏幕媒体,请避免物理单位。大多数系统没有校准正确地计算DPI(因此,在从物理单位转换为监视器可理解的内容(像素)时,它们会出错)。
指定CSS单位对于非零值是必需的。浏览器可能会尝试猜测您的意思,但根据标准它仍然是一种有毛病的样式表。
也就是说,在CSS2中没有“默认单位”,只是浏览器可能会尝试帮助您,尽管它可能会忽略未指定单位的语句并视为无效。
不,您无法更改默认单位,但只需在那里放置单位即可,这应该不会太麻烦:
#foo {
left: 22mm;
top: 20mm;
}
无论如何,您应该始终指定单位,因为这是必需的,而且浏览器可能会以不同的方式解释无单位值。
由于没有“默认单位”,在定位元素时需要提供单位,因此您可以使用“mm”而不是“px”。
是的,您可以通过为单位分配变量来间接实现此操作:
--unit: 1mm;
--value: 10;
--variable: calc(var(--unit) * var(--value));