"font" property 可以包含多个值来指定字体样式、字体粗细等。
我正在使用 CSS 解析器,但似乎找不到明确的答案: CSS 属性值是否总是由空格 分隔?
font: italic small-caps bold 12px arial,sans-serif
上面的例子有没有空格的“arial,sans-serif”。所有其他 w3c 示例都遵循相同的约定,这意味着空格是保留用于将值彼此分开——这似乎是一个安全的假设,但我还没有看到它得到明确证实。
我见过的其他问题和讨论涉及速记选择器、输出不同的属性值(这些的答案似乎也假设空格分隔),以及是否可以在一行中声明多个属性。不过,他们似乎都没有做出最终决定:空格是最终的分隔符吗?
最佳答案
您问题的技术答案是它完全取决于属性(property)本身。
但一般来说,是的,空格用于分隔 CSS 中属性值的不同组件。
然而,正如您在 font-family
属性中看到的,它采用的值是一个以逗号分隔的字体列表(通常称为字体堆栈)。它使用逗号作为分隔符这一事实仅由该属性的规范定义,请参阅 CSS2.1, section 15.3 :
和 CSS Fonts level 3, section 3.1 :
逗号前面或后面的空格都可以接受,或两者兼而有之。它并不重要,也不会改变属性(property)值(value)的含义。 W3C 规范中显示的约定是逗号后的单个空格。您链接到的页面是 W3Schools,它可能有自己的约定(实际上它显然没有——即使它自己的示例在使用空格时也不一致)。
事实上,即使是 font
属性,尽管是简写,也有自定义语法:为了指定 line-height
,必须指定 font-size
后跟一个正斜杠,这意味着,例如, font: 12px/1.5
等价于 font-size: 12px; line-height: 1.5
。见 this answer 。
但同样,对于在属性值中使用什么字符作为分隔符,没有明确的包罗万象的答案。每个 CSS 属性都有自己的可能值语法,这些语法总是在其各自的规范中详细说明。
关于css - 当一个 CSS 属性可以有多个值时,这些值是否总是用空格分隔?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22392420/