如何转换此标记限定选择器?

时间:2016-03-22 16:09:25

标签: html css css-selectors

对于一个新项目,我的任务是将所有内联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;  
}

1 个答案:

答案 0 :(得分:0)

由于您正在处理特异性问题,因此基本上不可能编写一个工作的选择器,而不会影响理论性能。 .param_indent的具体性不如.border td,因此该选择器下的声明不会优先。

其他可能解决特异性问题的选择器包括.border .param_indent,但由于后代选择器因性能方面的“最差”而臭名昭着,并考虑.border条目本身<无论如何,/ em>由后代选择器组成,你真的无法从CSS的这个特定部分中获得更高的效率。

所以我在这里所说的只是坚持td.param_indent。如果要认真对待后代选择器点,那么td.param_indent可能比.border .param_indent更好,因为对于某些“更好”的定义,即使使用类型选择器也是如此。

此外,除非你花时间自己剖析页面渲染,否则你永远不会确定它是否更好,或者它是否真的会更糟