通用选择器而不是逗号分隔的元素

Posted

技术标签:

【中文标题】通用选择器而不是逗号分隔的元素【英文标题】:Universal selector instead of comma separated elements 【发布时间】:2017-06-19 06:41:23 【问题描述】:

我想在这样的表格中同时设置 th 和 td 元素的样式:

<table>
  <tr>
    <th>Abc</th>
    <td>Cde</td>
  </tr>
  <tr>
    <th>Abc</th>
    <td>Cde</td>
  </tr>
</table>

我不想给它添加类,所以我需要这样做:

tr td, tr thbackground:#dddddd;
tr:nth-child(even) td, tr:nth-child(even) thbackground:#ffffff;

但是......像下面那样做有什么缺点吗?

tr > *background:#dddddd;
tr:nth-child(even) > *background:#ffffff;

【问题讨论】:

我认为这样做没有任何问题,因为唯一的直系孩子是tdth。如果您担心性能方面的问题,请阅读此答案here。 【参考方案1】:

没有;在最坏的情况下,您只会被仍然支持“避免通用选择器”教条的人大喊大叫。如果您仍然担心,因为您的页面非常复杂,包含数千个元素,那么您可以选择不使用它,但您只需要使用扩展的选择器列表,因为there isn't any cross-browser alternative available。

【讨论】:

以上是关于通用选择器而不是逗号分隔的元素的主要内容,如果未能解决你的问题,请参考以下文章

iPhone日期选择器而不是键盘?

逗号分隔列表的特殊性规则

让 SQL 使用选择表单元素,逗号分隔

在 ASP .NET MVC 5.1/HTML 5 特定中显示日期时间选择器而不是日期选择器

逗号分隔的 jQuery 选择器性能

jQuery选择器