Selektory#
Pseudokalsa jedynego dziecka#
:only-child { /* deklaracje */ }
Pseudoklasa :only-child
reprezentuje element, który jest jedynym dzieckiem w innym elemencie. Ma identyczne działanie jak selektory :first-child:last-child
lub :nth-child(1):nth-last-child(1)
, ale o mniejszej specyficzności.
Poniższy selektor wybiera dowolne elementy będące jedynymi dziećmi w innych elementach:
:only-child
Oczywiście całość można odpowiednio zawęzić. Następujący selektor wybiera elementy p
, które są jedynymi dziećmi w elementach div
:
div > p:only-child
Powyższy selektor wybierze akapit z pierwszego fragmentu strukturalnego, ale pominie ten w drugim fragmencie, gdzie element div
ma więcej niż jedno dziecko:
<!-- Fragment1 -->
<div class="uwaga">
<p>Element P wewnątrz uwagi (jedyne dziecko).</p>
</div>
<!-- Fragment2 -->
<div class="uwaga">
<h2>Uwaga</h2>
<p>Element P wewnątrz uwagi (dziecko, ale nie jedyne).</p>
<hr>
</div>
Można konstruować różne selektory o identycznym działaniu:
* > a:only-child /* a jest jedynym dzieckiem dowolnego elementu */
a:only-child /* jak wyżej (zakładamy, że a nie jest korzeniem dokumentu) */
Prosty przykład:
<!DOCTYPE html>
<html>
<head>
<style>
div :only-child {border: 5px solid red;}
div p:only-child {color: blue;}
</style>
</head>
<body>
<div>
<h2>Nagłówek</h2> <!-- czerwone obramowanie -->
</div>
<div>
<p>Pierwszy akapit.</p> <!-- czerwone obramowanie i niebieski tekst -->
</div>
<div>
<h2>Nagłówek</h2>
<p>Pierwszy akapit.</p>
</div>
</body>
</html>
Specyfikacje i inne materiały#
Pasek społecznościowy