如果已经在使用包含选择,为什么要使用启动,与选择(If already using the cont

2019-10-23 13:55发布

综观其他SO问题,我已经了解到, *=表示“包含”和^=的意思是“开始”。 我注意到[class^="icon-"], [class*=" icon-"] {/* CSS Here */}在一些第三方的CSS代码。 这令我多余的; 我不清楚为什么[class*=" icon-"] {/* CSS Here */}不会已经足够了。

是否重复使用的^=选择任何目的(如,可读性,旧的浏览器支持等)?

问参考:
什么是用于在CSS中选择元素时插入符号符号^?
什么是一个等号之前的星号意味着(* =)? 怎么样的感叹号?

Answer 1:

这不是一个多余的选择。 它可能用于选择与所述元件icon-即使它是第二个类列表像在下面片断类。

[class^="icon-"]将只选择其为类属性值开头的元素icon-

[class*=" icon-"]将选择包含一类具有所有元素icon-在其的类别列表。 注意它们如何专门之前所使用的空间。

引用CodingWithSpike的评论

[class*="icon-"]没有空格也将匹配等不期望的类not-icon-1lexicon-name为什么被包括前导间隔这是可能的。

从本质上说,选择组用于选择谁至少一个类开头的所有元素icon-作为他们的班级名单的一部分。

 [class^="icon-"] { color: green; } [class*=" icon-"] { color: red; } [class^="icon-"], [class*=" icon-"] { background: beige; } [class*="icon-"]{ border: 1px solid brown; } 
 <div class="icon-1">Only Icon class</div> <div class="a icon-1">Some other class before</div> <div class="a not-icon-1">Some other class before</div> 



文章来源: If already using the contains selector, why use the starts-with selector