鉴于此代码
a,
h1
{
background: lightblue;
}
我想重写它,以便每个选择器以逗号结尾,甚至是最后一个。这样可以轻松添加或重新排序选择器。但是,如果我在最后一个之后添加逗号,则不会应用样式。这段代码似乎有用
a,
h1,
_ {
background: lightblue;
}
但这会导致不可预见的问题吗?
答案 0 :(得分:2)
这会导致无法预料的问题吗?
不符合代码;但考虑一下人。想想那个偶然发现这个CSS的可怜的开发人员。想象一下,在样式表 中发现不必要的CSS 时,他/她的心理状态。喘息。
严肃的推理:可以轻松添加或重新排序选择器。
将选择器添加到选择器列表的开头或中间需要输入选择器,然后输入逗号,无论如何。添加到列表末尾需要逗号,然后是选择器。所以你的下划线没有帮助。
重新排序选择器归结为两种可能性:
(n-1)/(n choose 2) * 100
%偶然机会中,n
是选择器的数量,其中一个选择器是最后一个选择器,因此没有逗号,那么
简而言之:我写这个答案比你添加或重新排序选择器更辛苦。下划线没有必要。
答案 1 :(得分:2)
正如您完全清楚的那样,_
是一个完全有效的类型选择器,所以没有理由它应该单独破坏您的CSS规则。
唯一可能出现的无法预料的问题是,相反,您的CSS规则会应用恰好添加到您正在构造的文档中的任何_
元素(无论出于何种原因) ,就像任何其他元素与任何其他匹配选择器一样。如果规范决定引入_
元素,那么选择器相对于标记的含义会完全改变。当然,既然我们在讨论HTML,那么消失的 不太可能,但它仍然是可能的;在 发生的不太可能的,不幸的事件中,您将不得不将该存根选择器更改为......其他内容。
我不会重复其他人在评论中所说的关于这种编码实践可能会或可能不会是多么明智的内容。
答案 2 :(得分:0)
如果你认为它是一个HTML
标签,那么这绝对是错误的声明。 W3C 不允许记下自定义标记。如果您正在考虑使用class
或id
选择器,请在.
下划线符号前使用#
点或_
符号,以使其正常工作。< / p>
CSS代码:
a,
h1,
._ {
background: lightblue;
}