html - 为什么类属性不覆盖通用属性?
问题描述
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Berlin Sans FB';
}
我已将上述内容放在我的 CSS 的顶部,并且
.table-dark {
font-family: 'Times New Roman', Times, serif !important;
}
这最后一个。
我正在使用Bootstrap。
在这里,只有font-family: 'Berlin Sans FB';
浏览器正在使用,而不是最后一个,即font-family: 'Times New Roman', Times, serif !important;
我想用最后一个。现在,我该怎么办?
解决方案
您遇到了级联的症结,也是很多人避免使用通配符选择器的原因。
通配符选择器适用于所有对象,它不会将样式应用为继承。您可能认为这*{}
确实影响了<html>
or<body>
元素,但实际上它直接应用于所有元素。因此,它*{}
比从元素父级继承的样式具有更高的特异性。
.table-dark
是一个容器类,因此,您可能在它和内容之间有<tbody>
、<tr>
和元素。<td>
这是阻止<table>
元素传递其字体。可以这样想:
body {
font-family: helvetica;
}
table {
font-family: arial;
}
<body> <!-- helvetica -->
<div> <!-- inherited helvetica -->
<table> <!-- arial -->
<tbody> <!-- inherited arial -->
<tr> <!-- inherited arial -->
<td> <!-- inherited arial -->
content <!-- inherited arial -->
</td>
</tr>
</tbody>
</table>
</div>
</body>
在这里,<body>
将 Helvetica 传递给<div>
,但它没有将它传递给 table,因为 table 是在 CSS 中定义的。但是,您已将其分配给所有元素,如下所示:
* {
font-family: helvetica;
}
table {
font-family: arial;
}
<body> <!-- helvetica -->
<div> <!-- helvetica -->
<table> <!-- arial -->
<tbody> <!-- helvetica -->
<tr> <!-- helvetica -->
<td> <!-- helvetica -->
content <!-- helvetica -->
</td>
</tr>
</tbody>
</table>
</div>
</body>
推荐阅读
- mysql - 如何在选择中获得累计总数
- web-scraping - 如何通过 IMPORTXML 公式从 Google 表格中的 Indiegogo.com 抓取数据
- python - 转换为角色
- ios - 如何将注释标题居中?
- python - 如何在 Angular 项目中使用 Python 脚本作为 Cordova 插件?
- angular - 使用 istanbul-combine 合并覆盖率报告
- reactjs - 等待功能组件中的功能
- user-interface - 在R闪亮中更改流体页面的背景颜色
- c# - unity平移点相对于另一个点
- asp.net-core - 在开发过程中,如何在 Visual Studio 的不同端口上启动第二个虚拟主机