覆盖样式没有!重要

Hen*_*rik 31 css

如何覆盖另一个样式表中指定的样式?

我不想使用!important标签来覆盖它们.我宁愿指定一个新的样式表,在那里放置样式.这可以通过更改样式表的加载顺序来实现吗?

Ry-*_*Ry- 81

这取决于.CSS代表Cascading Style Sheets,并且有一个特定的顺序,应用样式,覆盖以前的样式.没有太多细节:

  • 如果你的规则具有相同的特性,只需加载你的样式表,一切都会正常工作.
  • 如果您的规则具有更高的特异性,则顺序无关紧要.
  • 如果您的规则具有较低的特异性,则需要修改它们以匹配.

那么,具体是什么?基本上,它是规则中每个选择器的总和.所以这:

a {
    background-color: black;
    color: white;
}
Run Code Online (Sandbox Code Playgroud)

具有较少的特异性:

body a {
    color: orange;
}
Run Code Online (Sandbox Code Playgroud)

.ID选择器具有比类选择器更高的特异性,类选择器具有与伪类选择器相同的特异性,其具有比标签选择器更高的特异性.所以,如果所有的内容包含在<div>同一个idcontent,你将能够覆盖一个风格,看起来像这样:

body a {
    border: 0;
}
Run Code Online (Sandbox Code Playgroud)

附:

#content a {
    border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)

  • @Matthew:你被错误地告知了。当然,如果这是您的偏好,请随意不要使用 id 选择器;这个答案陈述了关于优先级的事实,并没有提出任何建议。 (2认同)
  • @Matthew:你不必在某些东西上使用id*或*类.你可以使用两者.适当地使用每个 - 即,UI元素的类/类别/类型的类,以及作为唯一标识符的ID ... (2认同)