最后一个选择器后的逗号

时间:2013-12-27 05:08:21

标签: css css-selectors

鉴于此代码

a,
h1
{
  background: lightblue;
}

我想重写它,以便每个选择器以逗号结尾,甚至是最后一个。这样可以轻松添加或重新排序选择器。但是,如果我在最后一个之后添加逗号,则不会应用样式。这段代码似乎有用

a,
h1,
_ {
  background: lightblue;
}

但这会导致不可预见的问题吗?

3 个答案:

答案 0 :(得分:2)

  

这会导致无法预料的问题吗?

不符合代码;但考虑一下人。想想那个偶然发现这个CSS的可怜的开发人员。想象一下,在样式表 中发现不必要的CSS 时,他/她的心理状态。喘息。

严肃的推理:可以轻松添加或重新排序选择器。

  • 将选择器添加到选择器列表的开头或中间需要输入选择器,然后输入逗号,无论如何。添加到列表末尾需要逗号,然后是选择器。所以你的下划线没有帮助。

  • 重新排序选择器归结为两种可能性:

    1. 将选择器从列表的开头/中间移动到结尾,然后删除逗号。但是你的光标可能已经在逗号之后,所以只需简单地点击退格就能解决你的问题。
    2. 切换一对选择器(此过程可能会多次发生,但每个开关都相同)。
      • 如果两个选择器都不是最后一个选择器,这不是问题:只需切换整行。
      • (n-1)/(n choose 2) * 100%偶然机会中,n是选择器的数量,其中一个选择器是最后一个选择器,因此没有逗号,那么
        1. 切换选择器本身(仅由第一个选择器保留逗号)或
        2. 剪切+粘贴整行,并接受以下事实:您必须在新的第一个选择器后添加逗号,并在新的最后一个选择器后删除逗号。

简而言之:我写这个答案比你添加或重新排序选择器更辛苦。下划线没有必要。

答案 1 :(得分:2)

正如您完全清楚的那样,_是一个完全有效的类型选择器,所以没有理由它应该单独破坏您的CSS规则。

唯一可能出现的无法预料的问题是,相反,您的CSS规则会应用恰好添加到您正在构造的文档中的任何_元素(无论出于何种原因) ,就像任何其他元素与任何其他匹配选择器一样。如果规范决定引入_元素,那么选择器相对于标记的含义会完全改变。当然,既然我们在讨论HTML,那么消失的 不太可能,但它仍然是可能的;在 发生的不太可能的,不幸的事件中,您将不得不将该存根选择器更改为......其他内容。

我不会重复其他人在评论中所说的关于这种编码实践可能会或可能不会是多么明智的内容。

答案 2 :(得分:0)

如果你认为它是一个HTML标签,那么这绝对是错误的声明。 W3C 不允许记下自定义标记。如果您正在考虑使用classid选择器,请在.下划线符号前使用#点或_符号,以使其正常工作。< / p>

CSS代码:

a,
h1,
._ {
  background: lightblue;
}

SEE DEMO