【发布时间】:2018-04-01 17:33:38
【问题描述】:
请帮我找出为什么 CSS 变量中的算术运算会破坏代码。
我从一个带有一条规则的简单 CSS 文件开始:
html {
font: 16px/32px Arial;
}
在浏览器中,它的工作方式是:字体大小为 16px,行高为 32px,字体本身为 Arial。
然后我添加了变量:
html {
--default-font-size: 16px;
--default-line-height: var(--default-font-size);
font: var(--default-font-size)/var(--default-line-height) Arial;
}
它也有效;以为行高是16px,因为我让它等于字体大小。
但是当我乘以第二个值时,字体声明停止工作:
html {
--default-font-size: 16px;
--default-line-height: var(--default-font-size) * 2;
font: var(--default-font-size)/var(--default-line-height) Arial; /* not working! */
}
font-size、line-height 和 font-family 的所有属性都设置为浏览器默认值。
如果我将font 速记属性拆分为三个不同的速记属性,代码将再次正常工作:
html {
--default-font-size: 16px;
--default-line-height: var(--default-font-size) * 2;
font-size: var(--default-font-size);
line-height: var(--default-line-height);
font-family: Arial;
}
之前的代码示例有什么问题,有没有办法让它在不拆分为普通属性的情况下工作?
【问题讨论】:
-
你确定第三个有效吗?应该不会太
-
@TemaniAfif,你说得对,它可以部分工作:
font-size和font-family已设置,但line-height未设置。 -
是的,在这种情况下是逻辑,行高在第三种情况下也不应该起作用......它也需要
calc函数;)
标签: css shorthand css-calc css-variables