当前位置: 首页 > 面试题库 >

使用多个矛盾的CSS文件时的优先顺序

桓信鸥
2023-03-14
问题内容

当在同一页面上使用多个CSS文件并且它们冲突时,我怎么知道要使用哪个?例如,如果一个说蓝色背景,另一个说红色。


问题答案:

快速回答:

如果这两段CSS都具有相同的特异性(例如,它们都是body{),那么无论哪个被称为LAST都会覆盖前一个。

但是,如果某些东西具有更高的特异性(一个更具体的选择器),则无论其顺序如何,都将使用它。

范例1:

<div class="container">
    <div class="name">Dave</div>
</div>

<style>
    .name { color: blue; }
    .name { color: red; }
</style>

上面的示例将颜色变为红色
。两个选择器都相同,因此也具有相同的特异性。而且由于CSS从上至下读取,我们首先将其表示为蓝色,然后再通过告诉它“没关系,将其设为红色”来覆盖它。

范例2:

<div class="container">
    <div class="name">Dave</div>
</div>

<style>
    #container .name { background-color: blue; }
    .name { background-color: red; }
</style>

上面的示例将使背景色变为蓝色,即使蓝色是第一个,因为选择器更“特定”。

异常(的使用!important):

包含!important会覆盖特异性和顺序,但是我认为,仅当您尝试与第三方代码混淆时,才可以使用它,而您无权以其他任何方式对其进行更改。

外部CSS:

覆盖规则在外部CSS文件上的作用相同。试想一下,将它们放在倒数第一个,从上到下。在第一个文件中调用的选择器将在随后的任何文件中被相同特异性选择器覆盖。但是特异性仍将胜过同一文件或多个文件中的顺序。

测试方法:

在Chrome,Firefox和现代版本的IE(可能也是Safari)中,您可以右键单击某些内容,然后单击“检查元素”。这将向您显示HTML以及所有已应用的CSS。向下滚动CSS(通常在右侧)时,您会看到划掉的内容-
这意味着它们不是正确的CSS或已被覆盖。为了进行测试,您可以修改CSS选择器(在您自己的代码中或在开发人员工具框中的代码中)以使其更加具体,然后查看是否使随后的选择不被淘汰……等等。带该工具一起玩-
非常有用。



 类似资料:
  • 问题内容: 我试图弄清楚为什么我的一个css类似乎覆盖了另一个(而不是相反) 这里我有两个CSS类 在我看来,我打电话给 字体(重叠元素)显示为10px而不是20px-有人可以解释为什么会这样吗? 问题答案: 有几条规则(按此顺序应用): 内联css(html样式属性)覆盖样式标签和css文件中的css规则 较具体的选择器优先于较不具体的选择器 如果两个规则具有相同的特异性,则稍后出现在代码中的规

  • 问题内容: 我将开始学习JSF,但是首先我想了解它作为MVC框架的概况。 有很多答案,其中有很多赞扬解释了JSF中的MVC层,但是它们通常是矛盾的。 BalusC的答案: JSFMVC框架中的MVC是什么组件? 在总体架构图中,您自己的JSF代码是 V : M- 业务域/服务层(例如EJB / JPA / DAO) V- 您的JSF代码 C -FacesServlet 在开发人员图中,体系结构 V

  • 我正在尝试为微服务架构实现安全解决方案。我的身份验证服务器支持OAuth2和OIDC。 我正在尝试弄清楚是否可以在我的微服务之间传递JWT令牌,以避免重复交换不透明令牌来获得用户声明。没有什么(实际的)阻止我做那件事。我可以: 在进行呼叫时,使用我从身份验证服务器获得的JWT(ID令牌)作为承载令牌 每个服务都可以根据身份验证服务器的(缓存的)JWKS验证该令牌,以确保其有效 每个服务都可以在其对

  • 请查看Oracle规范-第5章。 这一行: 拓宽的基元转换不会丢失有关数值的整体大小的信息。 接下来,就在下面两行,这一行说震级信息可能会丢失。 从float到double的非strictfp加宽原语转换可能会丢失有关转换值的总体大小的信息。 这似乎是一个明显的矛盾;这是一个错误吗?

  • 问题内容: 我的网页包含: 引用的样式表包含: 我在ID中有一张表格,希望单元格有一些填充。但是,引用的样式表优先于内联样式。我可以通过Firebug直观地看到这一点。如果我关闭Firebug中的指令,则向左填充将生效。 我该如何上班? 问题答案: 正如其他人提到的那样,您有一个特异性问题。当确定两个规则中的哪一个优先时,CSS引擎会计算每个选择器中的s 数量。如果一个比另一个多,就使用它。否则,