Na przykład:
div > p.some_class {
/* Some declarations */
}
Co dokładnie oznacza >znak?
Na przykład:
div > p.some_class {
/* Some declarations */
}
Co dokładnie oznacza >znak?
Odpowiedzi:
>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:
Wybrane
Znajduje p.some_classsię bezpośrednio wewnątrz div, dlatego między obydwoma elementami nawiązuje się relacja rodzic-dziecko.
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”.
> (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:
Uwaga: < nie działa w selektorach CSS.
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:
.entry-content > * {"code" }czym następuje .entry-content {"other code" }? Nie .entry-content > *obejmuje wszystkich dzieci entry-content?
Jak wspominają inni, jest to selektor podrzędny. Oto odpowiedni link.
<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.
(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
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.
#something abędzie selektorem dzieci.