当前位置: 首页 > 知识库问答 >
问题:

CSS选择器和~选择器的区别[重复]

魏楷
2023-03-14

我看到一个。类别1~。class2选择器,并且必须查找它。

div ~ p {}

选择每个

<div></div>
<p></p>

然后是选择器:

div + p {}

选择所有

<div></div>
<p></p>

我认为这些是等价的,还是我遗漏了什么?


共有3个答案

蓬弘
2023-03-14

不同之处在于将选择下一个(相邻的)单个元素,而~将选择同一级别上所有前面的元素。但无论如何,你有定义,所以我想贡献一些简单的现实世界场景,以便更好地理解。

div + p {
    color: red;
}

使用

div ~ p {
    color: red;
}

演示2使用~

在这里,在第一个例子中,它选择与div相邻的p元素,但不会选择与第一个p相邻的p元素,而如果使用~,它将选择所有后面跟着div元素的p元素。

平嘉熙
2023-03-14

从规范:选择器级别3

8.3.1.相邻兄弟组合符(

由两个序列表示的元素在文档树中共享相同的父级,由第一个序列表示的元素紧接着由第二个序列表示的元素。

8.3.2.一般同级组合符(~

两个序列表示的元素在文档树中共享同一父元素,第一个序列表示的元素在第二个序列表示的元素之前(不一定立即)。

邓俊材
2023-03-14

在您的特定场景中,这两个选择器是等效的,但在更一般的场景中不是。

有一个重要的区别,组合器声明:

由两个序列表示的元素在文档树中共享相同的父级,由第一个序列表示的元素紧接着由第二个序列表示的元素。

想象一下这个场景:

<div></div>
<p></p>      <!-- this will be selected with the + combinator -->

<p></p>      <!-- these two paragraphs will be affected by the ~ combinator -->
<p></p>      <!-- but NOT by the + combinator -->

请不要混淆W3C,一个标准化web技术的严肃机构,和W3C学校,后者是一个相当糟糕的信息来源!

 类似资料:
  • 问题内容: 可以将CSS选择器传递给jQuery函数,例如: jQuery还具有一些过滤器,例如和: 我一直在寻找某种语法规则来区分两者,并且我想也许jQuery过滤器总是使用。 但是,某些CSS选择器也使用。例如: 有没有人知道您使用的是CSS选择器还是jQuery过滤器的任何智能提示? 问题答案: 我一直在寻找某种语法规则来区分两者,并且我想也许jQuery过滤器总是使用。 但是,某些CSS选

  • 主要内容:1. 通用选择器,2. 标签选择器,3. ID 选择器,4. 类选择器,5. 后代选择器,6. 子选择器,7. 相邻兄弟选择器,8. 通用兄弟选择器,9. 分组选择器,10. 属性选择器选择器由 HTML 元素的 id、class 属性或元素名本身以及一些特殊符号构成,用来指定要为哪个 HTML 元素定义样式。选择器是 CSS 样式规则中重要的组成部分,我们可以将选择器看作是 CSS 样式与 HTML 元素之间的匹配模式,与选择器关联的样式规则会应用于选择器所指定的 HTML 元素上。

  • 本文向大家介绍老生常谈jquery id选择器和class选择器的区别,包括了老生常谈jquery id选择器和class选择器的区别的使用技巧和注意事项,需要的朋友参考一下 实例如下: size() 方法返回DOM对象的个数 即: id是唯一的,即使有多个id相同的元素,jquery选择器也只能获取其中一个 。所以:想在jquery中对id设置动作, id在页面中只允许出现一次。 对于CSS样式

  • 本文向大家介绍css中class和id选择器有什么区别?相关面试题,主要包含被问及css中class和id选择器有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 id 在部分浏览器的 js 中会直接生成同名变量; id 的唯一性,获取该 id 的 dom 时,会取同名 id 的前者; id 层叠权重非常高,1000 个 class 也覆盖不了 id 的样式; class 可以用空格给同个元素

  • 本文向大家介绍相邻兄弟选择器、后代选择器和子选择器三者有什么区别?相关面试题,主要包含被问及相邻兄弟选择器、后代选择器和子选择器三者有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 后代选择器与子选择的关系:后代选择器>子选择器。 后代选择器:包括父元素的子元素以及孙子元素(代表符号:空格) 子选择器:包括父元素的子元素(仅仅是子元素)(代表符号:>) 相邻兄弟选择器与后续兄弟选择的关系:后

  • 问题内容: 使用这种语法有什么意义 这有什么区别 问题答案: 只会选择直接成为A的子级的B(也就是说,它们之间没有其他元素)。 将选择A内的任何B,即使它们之间还有其他元素也是如此。