为CSS指定默认规则是否效率低下?

时间:2010-07-01 10:17:54

标签: html css performance css-selectors

举个例子,假设我有一张桌子。标准对齐行为(不确定这是html规范还是我使用的浏览器?)似乎是左对齐主体元素和居中对齐头部元素。

因此,如果我希望所有内容保持一致,那么编写

的效率会降低
#MyTable td {
    text-align: left;
}

而不是写

#MyTable tbody td {
    text-align: left;
}

或者它真的没有任何区别吗?

在这种情况下,最佳做法是什么?

我想我的问题实际上是关于如何设置“默认”样式。如果在css中找不到匹配的样式,它们是否实际上是由浏览器显式设置的?或者,当没有样式时,它们是真正的默认行为。

2 个答案:

答案 0 :(得分:6)

您可以使用firebug / webkit内置检查器查看浏览器的默认和计算样式。选择器匹配从右到左。理论上,首先应该更快在实践中几乎没有任何差异。即使是~100个元素。 但是如果你想编写高效的选择器,规则很简单: 尽可能具体地选择最右边的选择器。

答案 1 :(得分:2)

默认情况下,除非另有说明,否则所有内容都是左对齐的(尽管某些语言(如阿拉伯语)可能会有所不同)。 HTML元素有suggested stylesheet,但它不是规范的一部分。

如果您为每个表单独覆盖text-align,那么可能会有点问题。浏览器从右到左匹配CSS,因此根据您的规则,他们将首先找到所有td元素并向上搜索以查找具有该ID的父级。最好的方法是简化:

td {
    text-align: left;
}

但是老实说,对于对齐与默认对象不同的元素,例如<th>元素,这可能是值得的。