【问题标题】:CSS Selectors - difference between and when to use ">", "+" or " " [duplicate]CSS选择器-使用“>”,“+”或“”之间的区别以及何时使用[重复]
【发布时间】:2017-09-05 15:17:57
【问题描述】:

在使用 CSS 时,我可以通过以下方式查询元素:

div > .class  
div .class 
div + .class 

但是,我不能完全说出每个DOM 查询之间的确切区别。它们都指向子元素吗?我知道“>”和“”(空格)可以。

但是在什么情况下我会使用它们呢?

【问题讨论】:

标签: css css-selectors


【解决方案1】:

在 CSS 中,这些被称为 Combinators,意味着三种不同的东西:

  1. div > .class:被称为Child selector,将选择div的直接子元素并具有.class类的所有元素。

  2. div .class: 被称为Descendant selectors,将选择一个div中的所有元素,并具有.class类。

  3. div + .class:称为Adjacent sibling selector,将匹配紧跟div 并具有.class 类的任何元素。

示例:

在下面的例子中:

<div>
  <p class="test">
    <a href="#" class="test">
      Testing link</a>
    <img class="test"/>
  </p>
  <span class="test">A span</span>
</div>
<h4 class="test">A title</h4>
  • div &gt; .test 将仅匹配 &lt;p&gt;&lt;span&gt; 元素。
  • div .test 将匹配 &lt;p&gt;&lt;a&gt;&lt;img&gt;&lt;span&gt; 元素。
  • div + .test 将仅匹配 &lt;h4&gt; 元素,因为它紧跟在 &lt;div&gt; 之后。

演示:

div .test {
  background: yellow;
}

div>.test {
  background: red;
}

div+.test {
  background: green;
}
<div>
  <p class="test">
    Pragraph
    <a href="#" class="test">
      link</a>
    <img class="test" width="50px" height="50px" />
  </p>
  <span class="test">Span</span>
</div>
<h4 class="test">Title</h4>

【讨论】:

  • 最好让代码解释答案是什么,你也这样做了。 ?
猜你喜欢
  • 2011-09-22
  • 2013-02-15
  • 2018-05-22
  • 1970-01-01
  • 2021-12-16
  • 2014-02-02
  • 1970-01-01
  • 2013-04-09
  • 1970-01-01
相关资源
最近更新 更多