我有一个包含大量列的HTML表格。我想在除一个列之外的所有列上设置text-align: center
。
我听说过,使用!重要和不必要的嵌套都是不受欢迎的。实现这一目标的“最佳”方式是什么?
!important
:#my-table td {
padding: 5px;
text-align: center;
}
.my-table-special-td {
text-align: left !important;
}
#my-table td {
padding: 5px;
text-align: center;
}
#my-table .my-table-special-td {
text-align: left;
}
还是其他一些方法?
“最好的”我的意思是: *符合CSS最佳实践 *表现良好
答案 0 :(得分:1)
请勿使用!important
,除非您没有其他选择。
#my-table td {
padding: 5px;
text-align: center;
}
td#my-table-special-td {
text-align: left;
}
您不必进行任何嵌套。只需使用id
而不是class
,并在其前面添加标记名称,如上面的代码所示。
以下是jsFiddle
的示例答案 1 :(得分:1)
为了提高性能,请为所有css使用内联样式。这是谷歌邮件(Gmail)中使用的技术,我认为雅虎!邮件也是。所以,如果它是你想要的速度。为所有内容使用内联样式。老实说,我不会去那条路,因为它不提供干净且可重复使用的代码。
所以我会选择最干净的解决方案,它给元素一个类名,避免使用!important。它肯定是不受欢迎的,它不必被用来说实话。该表将尊重表元素上的类名。这提供了一个更干净的CSS,最终适用于所有浏览器。如果要覆盖General中的类,则意味着您可能需要重新考虑CSS的体系结构。我并不是说你的做法是错误的,但我们谈论的最好的做事方式不是我们吗? :)
快乐的编码!
答案 2 :(得分:0)
就个人而言,我使用!important
来代表“覆盖”类。比如:
.center {text-align:center !important}
.right {text-align:right !important}
依此类推 - 如果我在元素上指定class="right"
,那是因为我特别想让它正确对齐,!important
有助于反映这一点。
但是在更一般的情况下,您应该避免!important
- 主要是因为一旦您使用!important
,就无法再覆盖它了!
答案 3 :(得分:0)
你应该这样做:
.tableAll td{
padding: 5px;
text-align: center;
}
而你只是想集中,为什么要定义类。在这种情况下,内联样式将起作用,并将覆盖.tableAll
的匹配样式。
<table class="tableAll">
<tr>
<td style="text-align: center;"></td>
<td >other all</td>
</tr>
</table>
我不推荐使用!important
。
答案 4 :(得分:0)
实际上,使用!important
和嵌套
你不应该经常使用!important
,因为一旦它传播并且你一遍又一遍地使用它,你将会回到开头(难以指定特定于覆盖其他样式的元素,应用),
但在这种特殊情况下,你很好,因为!important
规则只影响1个元素。
嵌套也很有效,只要你将它用于特殊情况而不是每一个元素,因为一旦你这样做,你的代码将是不可读的,你将很难改进和重新分解。 / p>
答案 5 :(得分:0)
#my-table td {
padding: 5px;
text-align: center;
}
#my-table td.my-special-td {
text-align:left;
}
可以说,您不需要#my-table
选择器,因为您声明要将所有 td
元素与中心对齐。
更可重复使用的方法是删除id
并且只有:
td { text-align:center; }
td.left-align { text-align:left;}
td.right-align {text-align:right;}
然后,您可以将对齐应用于任何位置的td
,并在需要时稍后通过向表中添加id
来覆盖。
答案 6 :(得分:0)
我不建议使用!important
。在您使用text-align: center
的情况下,您可以将文本居中,如果您想要任何列文本应该是left-align
,您可以为column
制作特定的类,或者更好地使用某些高级CSS3。
在此示例中,我想更改Last Column
的{{1}},并希望应用类。
我可以通过添加此样式来实现此目的。
Last row
或者更好地检查这个例子。 http://jsbin.com/mizotofe/1/