在CSS中,为什么文本颜色是用color
而不是text-color
或font-color
定义的?
另外,font-
和text-
之间有什么区别?
答案 0 :(得分:9)
color
属性不属于属性的字体或文本类别。它实际上存在于规范的各个部分,CSS1和CSS2.1。甚至整个CSS3 module专用于颜色。
每个规范将color
称为定义 foreground 颜色,然后将其描述为引用元素文本内容的颜色。但由于foreground-color
会不必要地冗长,因此“前景”一词不在属性名称之内。 background-color
不言自明,与color
区别开来。
尽管如此,虽然color
属性通常会影响元素的文本,但如果您还指定了边框但未指定border-color
,则边框将采用与文本。这是完全正常的,因为它规定了in the CSS box model specification:
如果未使用border属性指定元素的边框颜色,则用户代理必须使用元素的'color'属性的值作为边框颜色的计算值。
<div style="color: red; border: 1px dotted">
This block has red text and a red 1-pixel dotted border.
Notice only the width and style are specified in the style attribute.
</div>
Martin Algesten in his answer has a nice summary字体和文字属性之间的区别。
答案 1 :(得分:2)
字体是字体的变体,即Arial
是字体类型,Arial Bold
是字体。你没有设置字体颜色(我从来没有听说过具有特定颜色的字体)。您正在设置文本的颜色。
我想这个想法是你可以拥有受color
影响的其他元素,而不仅仅是文本。与text-decoration: underline
比较显然会影响文字,但如果我们想象我们可以插入一个内联的随机形状,它也会受到color
的影响。