我有一张桌子,我已经给了课class1
。我想写css来设置它的边框和它的列。我在下面这样做了,但是有没有办法重写将它组合成一个选择器?
.class1 {
border: 1px solid black;
border-collapse: collapse;
}
table.class1 td {
border: 1px solid black;
}
答案 0 :(得分:1)
你可以这样做:
通过组合选择器
table.class1,
table.class1 td {
border: 1px solid black;
border-collapse: collapse;
}
<table class="class1">
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
或强>
将class1
与表格一起添加到表格单元格中。
.class1 {
border: 1px solid black;
border-collapse: collapse;
}
<table class="class1">
<tr>
<td class="class1">Jill</td>
<td class="class1">Smith</td>
<td class="class1">50</td>
</tr>
<tr>
<td class="class1">Eve</td>
<td class="class1">Jackson</td>
<td class="class1">94</td>
</tr>
</table>
第二个会显着增加你的代码大小,也需要更多的努力,只使用一个“原子”选择器是一个肮脏的黑客。保存在CSS中的LOC不值得在HTML中工作 但这可能是您想要的,抱歉没有其他更好(有效)的方法。 < / p>
我会选择第一个,即使它是选择器的组合。
答案 1 :(得分:1)
如果您希望与示例CSS相比具有相同的结果,则其他人提出的建议将无效。这是你的
.class1 {
border: 1px solid black;
border-collapse: collapse;
}
table.class1 td {
border: 1px solid black;
}
.class1, table.class1 td {
border: 1px solid black;
border-collapse: collapse;
}
但这与你的规则不一样。
.class1 {
border: 1px solid black;
border-collapse: collapse;
}
table.class1 td {
border: 1px solid black;
border-collapse: collapse;
}
不你给我们缩短的css。
如果您不希望冗余地定义属性声明,那么
.class1,
table.class1 td {
/* all properties both elements have in common */
border: 1px solid black;
}
.class1 {
border-collapse: collapse;
}
请注意,虽然border-collapse
会忽略td
,但这只是巧合,因为OP也可能要求完全不同的元素和样式。
答案 2 :(得分:0)
您可以将两个选择器合并为一个,并且表格单元格将忽略边框折叠,但边框将被应用:
.class1, table.class1 td {
border: 1px solid black;
border-collapse: collapse;
}
答案 3 :(得分:0)
你可以写:
table.class1,
table.class1 td {
border: 1px solid black;
border-collapse: collapse;
}
border-collapse: collapse;
当然会忽略td
,但它仍会适用于table
。
参考:请参阅5.2.1 Grouping Selectors