编写一段代码时,我注意到在一个地方我写了> :first-child
以及后来> *:first-child
。这两个块看起来都很实用,但是两者之间有区别吗?
即使我们考虑性能,它们也是相同的。从规格 https://drafts.csswg.org/selectors-3/#universal-selector我们可以读
如果由 * 表示的通用选择器(即没有命名空间前缀)不是简单选择器选择器序列的唯一组成部分,或者后面紧跟一个伪元素,则 *可以省略和通用选择器暗示存在.
所以写> :first-child
应该意味着相同> *:first-child
对于浏览器。
您还可以阅读
注:推荐* 不能省略,因为它减少了之间的潜在混淆,例如,div :first-child
and div:first-child
. Here, div *:first-child
更具可读性。
因此,这不仅是一个偏好问题,而且有助于避免混淆并使代码更具可读性。
In 新规范 https://drafts.csswg.org/selectors-4/#the-universal-selector我们还可以阅读:
除非某个元素没有特征,否则存在通用选择器没有效果判断元素是否与选择器匹配。
and
注意:在某些情况下,添加通用选择器可以使选择器更易于阅读,即使它对匹配行为没有影响。例如,div :first-child
and div:first-child
乍一看有些难以区分,但将前者写为div *:first-child
使差异显而易见。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)