有没有一种方法可以在CSS中将border-color
设置为与文本颜色相同的颜色?
例如,创建一个类来添加底部点状边框,但让该边框的颜色与文本颜色匹配,就像text-decoration:underline
的颜色与文本颜色 (color
属性) 相同一样。
有没有一种方法可以在CSS中将border-color
设置为与文本颜色相同的颜色?
例如,创建一个类来添加底部点状边框,但让该边框的颜色与文本颜色匹配,就像text-decoration:underline
的颜色与文本颜色 (color
属性) 相同一样。
因此,当使用如果元素的边框颜色没有使用border属性指定,用户代理必须将元素的“color”属性值用作边框颜色的计算值。
border
简写属性时,你只需省略颜色即可:.dotted-underline {
border-bottom: dotted 1px;
}
或者仅使用 border-style
和 border-width
属性,而不使用 border-color
:
.dotted-underline {
border-bottom-style: dotted;
border-bottom-width: 1px;
}
或者,在支持新的CSS3关键字currentColor
的浏览器中,将其指定为border-color
的值(对于覆盖现有的border-color
声明很有用):
.dotted-underline {
border-bottom-color: currentColor;
border-bottom-style: dotted;
border-bottom-width: 1px;
}
currentColor
取代... - Šime Vidasborder-color
曾经在过去被设置过,那么您必须覆盖它。您不能只指定一个新规则border-bottom: dotted 1px
,因为它会保留之前设置的颜色;您只是在改变border-style
和border-width-bottom
属性。 - animusoncurrentColor
并更新了相关属性以支持CSS3的浏览器,您实际上可以重新声明border-bottom: dotted 1px
,它们将更改所有三个属性,其中border-color
再次变为currentColor
。另外,我刚刚发现我的演示在IE8中根本无法正常工作。我不知道这是由于CSS2.1规范中的错误还是歧义引起的(尽管我认为初始值应该很清楚,并且如我所提到的,CSS3模块只是添加了一个关键字来指定该值)。 - BoltClockThis:
border-bottom: 1px dotted currentColor;
根据规范:
currentColor ‘color’属性的值。‘currentColor’关键字的计算值是‘color’属性的计算值。 如果在‘color’属性本身上设置了‘currentColor’关键字,则它将被视为‘color: inherit’。
请参见:http://www.w3.org/TR/css3-color/#currentcolor
(但在IE8中无法正常工作)
更新:因此,明确设置颜色值并不是必要的,因为默认值已经 是 “color”属性的值。
所以这个可以正常工作:
border-bottom: 1px solid;
color
值作为border-color
的初始值,并且所有浏览器都非常支持它。 - BoltClock