我开始使用CSS变量来尝试制作模块化的大小调整比例。但是我很快遇到了一些问题,这些问题忽略了CSS值,但是我看不出有什么错误的迹象。
让我们看一下该问题的最简单再现:
:root {
--ratio: 1.25;
--font-size-medium-heading: calc(var(--ratio) * 1rem);
--font-size-large-heading: calc(var(--font-medium-heading) * var(--ratio)); /* note the typo in the var */
}
h1 {
font-size: var(--font-size-large-heading);
}
我故意打错了打字,以查看会发生什么(我从变量名中省略了-size
)。由于标题变小了,我尝试查询新CSS变量的值:
getcomputedStyle(document.documentElement).getPropertyValue('--font-size-large-heading') === ''
它返回了一个空字符串。
让我们前往Chrome的样式检查器,看看我是否收到警告标志⚠️:
MDN建议使用CSS验证器。因此,让我们尝试一下:https://jigsaw.w3.org/css-validator/validator
我的猜测是,该验证器并不是真正的最新版本(如果有人仍在使用它)。
更新
我了解到,根据规范,这是有效声明,但其计算时间值无效。我想知道这些,因为它只是将真正的问题隐藏在一个非常频繁的错误中(如果您花了一天的时间发现Angular期望模板中使用"'thing'"
而不是"thing"
,您将了解没有关于无效值的输出是多么糟糕。
是否可以获取有关计算时间无效的CSS var
和calc
值的错误输出?