当我遇到一个奇怪的情况时,我正在玩 CSS 选择器。
如果我使用 :first-child 伪元素,我需要在它前面加上一个空格才能工作,如果我不这样做,它将无法工作。但是 :first-letter 伪元素的情况是相反的,它只有在没有空格的情况下才会起作用。
我发现它非常不一致,因为它们都是伪元素。最初我认为这可能只是 IE10 的问题,但我使用 Chrome 和 Firefox 进行了检查,结果相同。有什么我想念的吗?这种行为有原因吗?
这是重现问题的紧凑示例:
<!DOCTYPE html>
<html>
<head>
<style>
* { color: red; }
#article1 :first-child { color: deepskyblue; }
article :last-child { color: darkmagenta; }
#firstLetter:first-letter { color: darkslateblue; }
#firstLine:first-line { color: darkslateblue; }
</style>
</head>
<body>
<article id="article1">
<div>E :first-child </div>
<div>E :last-child </div>
</article>
<div id="firstLetter">:first-letter</div>
<div id="firstLine">:first-line</div>
</body>
</html>