如何使一个样式具有.a .b .c
中定义的样式的所有属性,除了background-color
(或其他属性)?这似乎不起作用。
.a .b .c
{
background-color: #0000FF;
color: #ffffff;
border: 1px solid #c0c0c0;
margin-top: 4px;
padding: 3px;
text-align: center;
font-weight: bold;
}
.a .b .c .d
{
background-color: green;
}
5条答案
按热度按时间t98cgbkg1#
你是这个意思吗?
定义的顺序是非常有意义的,因为后者将适用。
fzwojiic2#
pw136qt23#
您可以添加.d类选择器作为第一个规则的选择器,然后添加一个规则来重新定义.d的背景颜色:
这就是您所问问题的答案,但我有一种感觉,这不是您所寻找的。也许您应该发布一个标记示例,并告诉我们您希望应用哪些样式,以便我们能够更好地帮助您。
yshpjwxd4#
看起来你把事情搞混了。如果你想把第一组括号中的属性应用到". d",那么它也需要在选择器列表中指定。你还需要用逗号分隔选择器,这样它们就变成了一个列表,而不是继承。
示例:
bvn4nwqk5#
我想你的想法有点倒退,所以让我们试着整理一下你使用的语言。
看看上面的CSS,“.a .b .c”部分是选择器,大括号之间的部分是样式。那个选择器说“找到所有类为“c”的元素,这些元素在类为“b”的元素内部,这些元素在类为“a”的元素内部,并将这些样式应用于它们“--这是一个规则,它规定页面上的哪些元素将获得您想要的外观。
多个选择器可以匹配页面上的同一个元素,并且有规则来决定它们应用于元素的顺序(http://www.w3.org/TR/CSS2/cascade.html)。简单的规则是更多的“特定”选择器覆盖更少的“特定”选择器。“div.blueBanner p a:hover.highlight”比“.blueBanner”更“特定”。如果两个规则具有相同的特定性,那么CSS文件中后面的规则将覆盖。
html示例:
因此,您有一个选择器“.a .B .c”(如上所列),页面上的两个元素(foo和bar)与该选择器匹配,因此它们都获得了您定义的背景色和所有其他样式。
现在,你还希望第二个元素有一个绿色的背景色。它有另一个类分配给它“d”,所以你可以定义另一个选择器,只匹配第二个元素“. a.b. d”,并设置它的背景色。“bar”元素仍然从“. a.b. c”选择器获得所有其他样式(字体、颜色等),但背景颜色来自“.a .b .d”。