Co oznacza selektor CSS „>” (znak większy niż)?


Odpowiedzi:


672

>jest kombinatorem dzieci , czasami mylnie nazywanym kombinatorem bezpośredniego potomka. 1

Oznacza to, że selektor div > p.some_classwybiera tylko te akapity, .some_classktóre są zagnieżdżone bezpośrednio w a div, a nie żadne akapity, które są zagnieżdżone dalej.

Ilustracja:

<div>
    <p class="some_class">Some text here</p>     <!-- Selected [1] -->
    <blockquote>
        <p class="some_class">More text here</p> <!-- Not selected [2] -->
    </blockquote>
</div>

Co jest wybrane, a co nie:

  1. Wybrane
    Znajduje p.some_classsię bezpośrednio wewnątrz div, dlatego między obydwoma elementami nawiązuje się relacja rodzic-dziecko.

  2. Niewybrane
    Jest p.some_classto zawarte w blockquoteobrębie div, a nie w divsamym sobie. Chociaż p.some_classjest to potomek div, nie jest to dziecko; to wnuk.

    W związku z tym, chociaż div > p.some_classnie będzie pasował do tego elementu, div p.some_classużyje zamiast tego kombinatora potomnego.


1 Wiele osób idzie dalej, nazywając to „bezpośrednim dzieckiem” lub „bezpośrednim dzieckiem”, ale jest to całkowicie niepotrzebne (i niezwykle denerwujące dla mnie), ponieważ element potomny jest z definicji natychmiastowy , więc mają na myśli dokładnie to samo. Nie ma czegoś takiego jak „dziecko pośrednie”.


2
+1 Czy to naprawdę nazywa się selektorem dzieci ? Jeśli tak, jest to dość mylące. Myślałbym, że #something abędzie selektorem dzieci.
alex

2
@alex: tak :) #something amoże oznaczać, że ajest wnukiem lub wnukiem #something(nie bierze pod uwagę głębokości zagnieżdżenia).
BoltClock

12
@alex nazywa się kombinatorem potomnym , przestrzeń nazywa się kombinatorem
potomnym

33
Kiedy ktoś jest dzieckiem dziadka, mamy do czynienia z naprawdę okropnym kazirodztwem. Na szczęście jest to niemożliwe w HTML.
Quentin

8
Nie słyszę, aby świeccy nazywali swoje dzieci swoimi bezpośrednimi dziećmi dla zachowania przejrzystości.
BoltClock

41

> (znak większy niż) to kombinator CSS.

Kombinator to coś, co wyjaśnia związek między selektorami.

Selektor CSS może zawierać więcej niż jeden prosty selektor. Pomiędzy prostymi selektorami możemy dołączyć kombinator.

Istnieją cztery różne kombinatory w CSS3:

  1. selektor potomka (spacja)
  2. selektor potomny (>)
  3. sąsiedni selektor rodzeństwa (+)
  4. Ogólny selektor rodzeństwa (~)

Uwaga: < nie działa w selektorach CSS.

wprowadź opis zdjęcia tutaj

Na przykład:

<!DOCTYPE html>
<html>
<head>
<style>
div > p {
    background-color: yellow;
}
</style>
</head>
<body>

<div>
  <p>Paragraph 1 in the div.</p>
  <p>Paragraph 2 in the div.</p>
  <span><p>Paragraph 3 in the div.</p></span> <!-- not Child but Descendant -->
</div>

<p>Paragraph 4. Not in a div.</p>
<p>Paragraph 5. Not in a div.</p>

</body>
</html>

Wynik:

wprowadź opis zdjęcia tutaj

Więcej informacji o kombinatorach CSS



@premraj Dziękujemy za doskonałe wyjaśnienie selektorów css typu rodzic-dziecko!
YCode

Co to znaczy, kiedy dostajesz coś takiego, po .entry-content > * {"code" }czym następuje .entry-content {"other code" }? Nie .entry-content > *obejmuje wszystkich dzieci entry-content?
YCode


10

Dopasowuje pelementy z klasą, some_classktóre znajdują się bezpośrednio pod div.


5

Wszystkie pznaczniki z klasą, some_classktóre są bezpośrednimi elementami potomnymi divznacznika.


4
HTML
<div>
    <p class="some_class">lohrem text (it will be of red color )</p>    
    <div>
        <p class="some_class">lohrem text (it will  NOT be of red color)</p> 
    </div>
    <p class="some_class">lohrem text (it will be  of red color )</p>
</div>
css
div > p.some_class{
    color:red;
}

Wszystkie bezpośrednie dzieci, które są <p>z .some_classtym, zastosują do nich styl.


3

(selektor potomny) został wprowadzony w css2. div p {} zaznacz wszystkie elementy p decedent elementów div, podczas gdy div> p wybiera tylko elementy potomne p, a nie grand child, great grand child itd.

<style>
  div p{  color:red  }       /* match both p*/
  div > p{  color:blue  }    /* match only first p*/

</style>

<div>
   <p>para tag, child and decedent of p.</p>
   <ul>
       <li>
            <p>para inside list. </p>
       </li>
   </ul>
</div>

Aby uzyskać więcej informacji na temat CSS Ce [lektorów i ich zastosowania, sprawdź mój blog, selektory css i selektory css3


0

Większy selektor znaku (>) w CSS oznacza, że ​​selektor po prawej jest bezpośrednim potomkiem / dzieckiem tego, co jest po lewej.

Przykład:

article > p { }

Oznacza tylko styl akapitu, który pojawia się po artykule.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.