CSS:使用更通用的选择器覆盖特定的选择器

时间:2019-09-27 11:36:52

标签: css

我有一个CSS样式表,用于指定每个段落类的字体:

p.body {
    font-family: Tahoma;
    /* (more properties omitted for brevity) */
}
p.bodytextcenter {
    font-family: Tahoma;
}
p.bodytextright {
    font-family: Tahoma;
}

(数十种样式等)。

现在,对于某些语言,我必须使用其他字体。我可以通过创建一个新的选择器p.body[lang="de"]等来做到这一点,但是我必须为列表中的每种样式都这样做。

是否可以指定p[lang="de"]并将其应用于具有该语言属性的所有段落?还是这需要我从每个段落类中删除font-family属性?

2 个答案:

答案 0 :(得分:0)

p [lang =“ de”]这可能有效,但如果不能,则可以在字体系列样式中添加!important

答案 1 :(得分:0)

尝试一下:

html body p[lang=de]

...或类似内容,具体取决于您的实际HTML。您只需要添加更多级别的特异性即可。

如果没有看到您的HTML,就无法正确回答;但是我会猜测CSS的结构不正确,这就是让您感到困难的原因。进行上述操作有点琐,但在语法上是合法的。

剩下的事情现在可能没有太大帮助,但是对于下一个项目要牢记。...

最好根据语义而不是特定效果来设计页面结构。导航,文章,旁边,侧边栏;而不是左,右,粗体等。假设您在右侧有一个侧边栏。您可以将其命名为“ sidebar”或“ textright”。但是在路上,您决定将其放在左侧...。或者在移动设备上做一些完全不同的事情。现在,“文字版权”只是贴错了标签。

即使与当前的操作方式保持一致,也应注意,一个元素可以具有多个类。因此,与其拥有:

<p class="body">...</p>

<p class="bodytextcenter">...</p>

<p class="bodytextright">...</p>

您可能会遇到类似的事情:

<p class="body">...</p>

<p class="body textcenter">...</p>

<p class="body textright">...</p>

因此,您可以在p.body上设置字体,并在p.textcenterp.textright上设置布局

对于当前项目来说,这是一个不完善的答案,因为它需要更改许多现有文本,但这可以追溯到最初的问题-CSS的结构不良。 (同样,在没有看到HTML的情况下,我主要是在这里猜测...。)