CSS-基本特异性
我有一个包含许多列的HTML表。我想在除一列之外的所有列上设置CSS-基本特异性,css,Css,我有一个包含许多列的HTML表。我想在除一列之外的所有列上设置文本对齐:居中 我听说他们都在使用!重要和不必要的筑巢是不受欢迎的。实现这一目标的“最佳”方式是什么 使用!重要信息: 不必要的嵌套: 还是其他方法 我所说的“最佳”是指: *符合CSS最佳实践 *性能好就我个人而言,我使用!重要信息“覆盖”类。例如: .center {text-align:center !important} .right {text-align:right !important} 依此类推-如果我在元素上指定c
文本对齐:居中
我听说他们都在使用!重要和不必要的筑巢是不受欢迎的。实现这一目标的“最佳”方式是什么
使用!重要信息
:
不必要的嵌套:
还是其他方法
我所说的“最佳”是指:
*符合CSS最佳实践
*性能好就我个人而言,我使用!重要信息
“覆盖”类。例如:
.center {text-align:center !important}
.right {text-align:right !important}
依此类推-如果我在元素上指定class=“right”
,那是因为我特别希望它右对齐并且!重要信息
有助于反映这一点
但是在更一般的情况下,您应该避免使用!重要的
-主要是因为一旦您使用了!重要信息
,无法再覆盖它了 你应该这样做:
.tableAll td{
padding: 5px;
text-align: center;
}
你们只想居中,那个么为什么要定义类呢。在这种情况下,内联样式将起作用,并将覆盖.tableAll
的匹配样式
<table class="tableAll">
<tr>
<td style="text-align: center;"></td>
<td >other all</td>
</tr>
</table>
其他所有
我不推荐使用!重要信息
实际上,使用两种解决方案都很好!重要信息
和嵌套
您不应该使用!重要信息
太频繁了,因为一旦它传播开来,并且您反复使用它,您将回到开始(难以指定特定于覆盖其他样式的元素,应用),
但是在这种特殊情况下,由于,您就可以了!重要信息
规则仅影响1个元素
嵌套也可以很好地工作,只要您将其用于特殊情况,而不是每个元素,因为一旦您这样做,您的代码将无法读取,并且您将很难改进和重新分解。不要使用!重要信息
,除非您没有其他选择
#my-table td {
padding: 5px;
text-align: center;
}
td#my-table-special-td {
text-align: left;
}
你不必做任何嵌套。只需使用id
istead ofclass
并在前面添加标记名,正如您在上面的代码中所看到的那样
这里有一个例子
可以说,您不需要#my table
选择器,正如您所说的,您希望将所有元素对齐到中心
更可重用的方法是删除id
,只需:
td { text-align:center; }
td.left-align { text-align:left;}
td.right-align {text-align:right;}
然后,您可以将对齐应用于任何td
位置,如果需要,也可以稍后通过向表中添加id
进行覆盖 对于性能,请对所有css使用内联样式。这是谷歌邮件(Gmail)中使用的技术,我认为雅虎!还有邮件。所以如果你想要的是速度。一切都使用内联样式。老实说,我不会走这条路,因为它不提供干净和可重用的代码
所以我会选择最干净的解决方案,给元素一个类名,避免使用!重要的。这是绝对不赞成的,它不必被用来诚实。表将尊重表元素上的类名。这最终为所有浏览器提供了一个更干净的CSS。如果您通常覆盖类,这意味着您可能需要重新考虑CSS的体系结构。我不是说你做得不对,但我们在谈论做事情的最佳方式,不是吗?:)
快乐编码 我不建议使用!重要信息
。在您的情况下,使用文本对齐:居中
可以将文本居中,如果您希望任何列的文本都应该是左对齐
,您可以为该列
创建一个特定的类,或者更好地使用一些高级CSS3
在本例中,我希望更改最后一行的最后一列
,并希望应用类
我可以通过添加这种样式来实现这一点
table tr:last-child td:nth-child(5) {background:red;}
或者最好检查一下这个例子 不必要的嵌套是什么意思?@user3117610也许你可以在这里了解一些不应该使用的想法!重要信息
事实上,至少不是“出于设计”,您应该仅在所需更改太大时使用它来修复某些内容,而不使用它。“类”解决方案似乎是一个很好的解决方案(并且不是“不必要的嵌套”),但是如果您确实知道列的索引,您也可以使用nth child
。是的,我可以添加类。通过不必要的嵌套,我的意思是“my table special td”之前的“my table”说明符是多余的。没有必要担心css文件中的冗余,您最好注意代码保持可读性,这对于嵌套元素来说不是那么容易)我认为这不可行。“.my table special td”没有“#my table td”规则那么具体,所以它仍然居中。我不喜欢混合内联CSS的想法,我认为这是一种非最佳做法。@user3117610内联样式很好,如果不太长,也不弄乱标记的话。如果是,则class
是最佳做法。在你的例子中,有一个表,而不是到处都写。因为我的站点上有不止一个表,所以我确实需要#我的表说明符。但是,由于其他表都没有my table专用td,因此将“#my table”与该td一起指定似乎是多余的。
#my-table td {
padding: 5px;
text-align: center;
}
#my-table td.my-special-td {
text-align:left;
}
td { text-align:center; }
td.left-align { text-align:left;}
td.right-align {text-align:right;}
table tr:last-child td:nth-child(5) {background:red;}