对于一个新项目,我的任务是将所有内联CSS提取到自己的文件中。虽然我已经找到了很多这些HTML / CSS恶作剧,但这让我感到困惑:
<table class="border">
<tr>
<td>Logical</td>
<td>Arbitrary</td>
<td class="param_indent">Name of Ghostbuster. One of the following:<br>
VENKMAN<br>
STANTZ<br>
SPENGLER<br>
ZEDDEMORE
</td>
</tr>
</table>
每个其他条目都使用“&lt; .class&gt;”格式,但我能让它工作的唯一方法如下:
td.param_indent {
text-indent:-28px;
padding-left:30px;
}
在不更改行中其余单元格的情况下,我可以格式化此more efficiently?
以下是“.border”的条目:
.border table, .border td, .border tr, .border th {
border: 1px solid black;
}
答案 0 :(得分:0)
由于您正在处理特异性问题,因此基本上不可能编写一个工作的选择器,而不会影响理论性能。 .param_indent
的具体性不如.border td
,因此该选择器下的声明不会优先。
其他可能解决特异性问题的选择器包括.border .param_indent
,但由于后代选择器因性能方面的“最差”而臭名昭着,并考虑.border
条目本身<无论如何,/ em>由后代选择器组成,你真的无法从CSS的这个特定部分中获得更高的效率。
所以我在这里所说的只是坚持td.param_indent
。如果要认真对待后代选择器点,那么td.param_indent
可能比.border .param_indent
更好,因为对于某些“更好”的定义,即使使用类型选择器也是如此。
此外,除非你花时间自己剖析页面渲染,否则你永远不会确定它是否更好,或者它是否真的会更糟。