我正在编写一个基于他人样式表的网页。样式表包括以下内容:
table {
border-collapse: collapse;
}
th, td {
padding: 0;
}
现在我想创建一个具有非零单元格填充的表。但是我在重写这个样式表时遇到了问题:
<table cellpadding="10">
<tr>
<td padding="10">
Foo
</td>
...
...
</tr>
</table>
上述工作均未完成;单元格填充保持为零。
如何覆盖样式表(除了使用不同的样式表)?
您可以执行联机样式:
<td style="padding: 10px">
或者为table
分配一个类并为其创建一个规则:
<table class="table">
<tr>
<td>
Foo
</td>
</tr>
</table>
以及用于此的CSS:
table td {
padding: 10px;
}
尽量在选择器中更加具体,例如
table td {
padding:10px;
}
以上内容将覆盖
th, td {
padding: 0;
}
点击此处了解有关CSS特定性的更多信息。
只需内联必要的样式:
<table style="border-collapse: separate; border-spacing: 10px;">
...
</table>
如果你这样做,你也不需要td
上的padding="10"
。看见http://jsbin.com/exovat/edit#html作为一个工作示例。
内联样式的另一种选择是,如果您可以访问在样式表之后加载的自定义样式表。然后,您可以在表上设置一个id,如<table id="foo">
,然后在自定义样式表中覆盖它们的样式,如下所示:
table#foo {
border-collapse: separate;
border-spacing: 10px;
}
[注意:border-spacing
css属性不适用于IE7或更低版本;如果您需要支持这些浏览器,最好使用一些更破解的方法]
您可以使用内联样式(即在元素上声明的样式)、内联样式表(即在同一页面中声明但不直接在元素上宣布的样式)或外部样式表。不幸的是,CSS样式在大多数情况下都会覆盖属性(我认为像您在这里使用的属性是不推荐的,这意味着本质上使用样式表)。
为表创建一个新类,并将其仅应用于您想要具有此样式的表。
table {
border-collapse: collapse;
}
th, td {
padding: 0;
}
table.newStyle { padding:10px; }
<table class="newStyle">
<tr>
<td padding="10">
Foo
</td>
...
...
</tr>
</table>