一般兄弟选择器 - 奇怪的行为

Pet*_*ter 5 html css css-selectors

据我所知,CSS中的一般兄弟选择器选择一个元素的降序兄弟.

请考虑以下代码:

<head>
<style>
h3 ~ div {
    color: #FF00FF;
}
</style>
</head>
<body>
    <h3>Header 3</h3>
    <div>Sibling divivion</div>
    <p>
        <p>Nested paragraph</p>
        <div>Nested division</div>
    </p>
</body>
Run Code Online (Sandbox Code Playgroud)

我希望一般的兄弟选择器能够针对作为div元素的h3的所有降序兄弟.

有人可以解释为什么选择"嵌套分裂"吗?我不认为它是h3的兄弟姐妹?

Guf*_*ffa 8

div实际上是的兄弟h3元素.你不能有一个p元素和div一个内部元素p的元素:

"P元素代表一个段落.它不能包含块级元素(包括P本身)."

参考:9.3.1段落:P元素

当浏览器遇到第二段时,它将结束第一段,因此第二段和div元素在第一段之后结束:

<h3>Header 3</h3>
<div>Sibling divivion</div>
<p></p>
<p>Nested paragraph</p>
<div>Nested division</div>
<p></p>
Run Code Online (Sandbox Code Playgroud)

段落的结束标记是可选的,因此段落以结束标记结束,或者以下一个块元素开始的位置结束.第一段的预期结束标记缺少一个起始标记,最终作为单独的段落.

  • 哦,快照,刚发布相同.+1 (2认同)