有没有办法在不覆盖所有内容的情况下中和元素的 CSS 规则?
例如,我正在使用 Twitter Bootstrap,它有许多预定义的 CSS 定义table
。在某些地方,我不想要它们。
在某些table
元素上,我想知道我是否可以做这样的事情:
<table style="default"></table>
有没有办法在不覆盖所有内容的情况下中和元素的 CSS 规则?
例如,我正在使用 Twitter Bootstrap,它有许多预定义的 CSS 定义table
。在某些地方,我不想要它们。
在某些table
元素上,我想知道我是否可以做这样的事情:
<table style="default"></table>
Bootstrap的元素只有一点点CSS :<table>
table {
max-width: 100%;
background-color: transparent;
border-collapse: collapse;
border-spacing: 0;
}
要覆盖这些,您可以为您的表创建一个名为无肩带或其他东西的类:
table.strapless{
max-width: 100%;
background-color: transparent;
border-collapse: separate;
border-spacing: 2px;
border-color: gray;
}
此table.strapless
选择器将覆盖table
引导程序使用的选择器,因为它更具体。
要使用 css 类,请将其包含在表的 class 属性中:
<table class="strapless">
您不能在不覆盖的情况下中和 CSS 规则。因此,您必须按照上述答案中的建议进行操作。
在 CSS 中使用一个类来定位不同的表格元素。
table.black {
background-color:black;
}
table.default {
background-color:white;
}
然后,您可以对表格元素进行分组并应用您打算应用的特定样式,只需在元素本身上为它们提供适当的类属性名称即可。
<table class="default">
<table class="black">
同样重要的是要注意 CSS 类定义将覆盖元素定义。一个好的经验法则是更具体的 CSS 选择器将覆盖不太具体的选择器。因此,如果出于某种原因不想修改原始 CSS 文件,您可以从新的 CSS 文件应用不同的 CSS 样式。这当然假设旧 CSS 中还没有table.default
规则和table.black
规则。
如果有相当数量的 CSS,您网站的 CSS 可能应该在外部样式表中。在此样式表中,您将按照其他人的建议为您的表格指定一个类名,您可以在其中添加所需的 CSS 规则。
但是,为了使用您在 mysite.css 样式表中新应用的 CSS 规则覆盖 Bootstrap 的样式表,真正的关键是将该样式表放置在 HTML 页面上比 bootstrap.css 文件更靠下的位置。像这样:
外部的:
<!DOCTYPE html>
<html lang="en">
<head>
<link href="/assets/css/bootstrap.css" rel="stylesheet" type="text/css">
<link href="/assets/css/mysite.css" rel="stylesheet" type="text/css">
</head>
</html>
如果您不想使用外部样式表路线,那么使用您在问题中建议的“内联”规则也可以使用(即覆盖 bootstrap.css):
排队:
<!DOCTYPE html>
<html lang="en">
<head>
<link href="/assets/css/bootstrap.css" rel="stylesheet" type="text/css">
</head>
<body>
<table>
<tr>
<td style="border-top: 1px solid red;"></td>
<td></td>
</tr>
</table>
</body>
</html>