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_class
wybiera tylko te akapity, .some_class
któ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_class
się bezpośrednio wewnątrz div
, dlatego między obydwoma elementami nawiązuje się relacja rodzic-dziecko.
Niewybrane
Jest p.some_class
to zawarte w blockquote
obrębie div
, a nie w div
samym sobie. Chociaż p.some_class
jest to potomek div
, nie jest to dziecko; to wnuk.
W związku z tym, chociaż div > p.some_class
nie będzie pasował do tego elementu, div p.some_class
uż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_class
tym, 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 a
będzie selektorem dzieci.