我有以下html5代码。我希望文字商业广告的样式为斜体,颜色为黄色。但它是红色的。
只能将某些样式应用于旁边元素吗?
CSS:
aside h4 {
font-style: italic !important;
color: yellow;
}
article h4 {
font-style: normal;
color: red;
}
HTML:
<div>
<article>
<aside>
<h4>Business Ads</h4>
</aside>
</article>
</div>
答案 0 :(得分:3)
这是CSS特异性工作方式的结果。这里的页面:
https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity
提供了一个很好的解释。在这种情况下,由于两个样式声明都引用较大元素中的h1,因此它们具有相同的特异性,并且最新声明的样式优先。你可以用!important来覆盖它,但它通常被认为是糟糕的风格,因为它打破了CSS的“级联”性质。相反,请使用更具体的选择器:
article aside h1 {
//style goes here
}
答案 1 :(得分:2)
您可以按照设置CSS的方式覆盖规则。两个规则都以相同的元素为目标,因此第二个规则将覆盖第一个元素并应用于元素。
例如,如果您将反对点顺序设置为您的规则:
article h4 {
font-style: normal;
color: red;
}
aside h4 {
font-style: italic !important;
color: yellow;
}
第二个是aply,h4
将是黄色和斜体
因此,如果您h4
内也有article
,则可以使用此代码:
article aside h4 {
font-style: italic !important;
color: yellow;
}
article h4 {
font-style: normal;
color: red;
}
答案 2 :(得分:2)
您必须对选择器更加具体,以便分配它的规则会覆盖&#34;默认&#34;一。您可以删除!important
,这不是在您使用其他技术时覆盖现有规则的最佳方法。
<强> DEMO 强>
article aside h4 {
font-style: italic;
color: yellow;
}
article h4 {
font-style: normal;
color: red;
}
答案 3 :(得分:0)
您的目标是使用相同的h4元素,但是您使用了不同的样式 最后一个被读了。只需删除
article h4 {
font-style: normal;
color: red;
}
并删除第一个选择器中的!important
。
如果你的目标是在文章或旁边的标签中定位不同的h4标签,你可以做的就是把类或跨度放在它们上面。