’+’ 与 ’~’ 选择器有什么不同
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 317
Author 回答者: shfshanyue
+
选择器匹配紧邻的兄弟元素~
选择器匹配随后的所有兄弟元素
Author 回答者: QC2168
~ + 选择器不同之处
~
是匹配元素之后的选择器
+
是匹配相邻元素选择器
<div>我是div</div>
<p>我是p</p>
<p>我是p</p>
<div>我是div</div>
<p>我是p</p>
<div>
<p>我是div下面的p</p>
<p>我是div下面的p</p>
</div>
<span>我是span</span>
<style>
div+p {
color: red;
}
/* 第一个p标签变红色了 */
div~p{
color:red;
}
/* div后面的p标签都变成红色了 */
</style>
Author 回答者: Psycho-Monster
div后相邻的p标签文字都会变红,而不是只有第一个p标签变红
Author 回答者: yxw007
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>title</title>
<style>
/* + 选择器选取紧接着的相邻连续兄弟元素 */
.d1 p + p {
color: red;
}
/* ~ 选择器选取后面所有的同级兄弟元素 */
.d2 p ~ p {
font-weight: bold;
}
</style>
</head>
<body>
<div class="d1">
<p>第一个段落</p>
<p>第二个段落</p>
<p>第二个段落</p>
<span>span</span>
<p>第三个段落</p>
</div>
<br />
<div class="d2">
<p>第一个段落</p>
<p>第二个段落</p>
<span>span</span>
<p>第三个段落</p>
</div>
</body>
</html>
”+” 选择器匹配紧邻的连续兄弟元素,这样描述更准确
Author 回答者: zhuangyin8
The next-sibling combinator (+) separates two selectors and matches the second element only if it immediately follows the first element, and both are children of the same parent element.下一个兄弟元素 The subsequent-sibling combinator (~, a tilde) separates two selectors and matches all instances of the second element that follow the first element (not necessarily immediately) and share the same parent element.下所有兄弟元素