Over >, + en ~ in Style Sheets

Sommige stylesheets bevatten tussen de gebruikelijke selectors een groter-dan-teken of een plus-teken. Op het eerste gezicht is dat raar, maar het heeft wel degelijk bedoeling en betekenis.

Over de > in Style Sheets
Dit wordt aangeduid met de term Child Selector. Er is een match als een HTML-element een 'kind' is van een ander element. Zo zijn alle elementen in een HTML-document de kinderen van het element <html>.

Een child selector bestaat uit twee selectors met daartussen het groter-dan teken >.

De code:
 
body > p { line-height: 1.3em }
 
stelt de regelafstand van alle paragrafen die zich binnen de <body> bevinden, in op 1.3 em.

Deze is wat ingewikkelder. De code:
 
div ol > li p
 
matcht een <p> die is gedefinieerd binnen een list-item <li>, die deel uitmaakt van een geordende lijst <ol>, binnen een <div>.
 

Over de + in Style Sheets
Met een plus-teken tussen twee selectors geef je aan dat de selector die volgt na de plus, de eigenschappen krijgt die in de style worden genoemd. Noodzakelijk is dat de selector de plus direct volgt op de selector net vóór de plus. De code hieronder maakt dat de tekst in een paragraaf-tag die direct na een paragraaf-tag komt, een donkerblauwe kleur krijgt.
 
p + p { color:navy; }

De code:
 
h1 + h2 { font-weight:bold }
 
zorgt er voor dat een <h2>-tag die direct volgt na een <h1>-tag, in vette letters op het scherm wordt gezet.

Dit kan ook met klassen. De code:
 
h1.abcd + h2 { font-weight:bold }
 
zorgt er voor dat een <h2>-tag die direct volgt na een <h1>-tag, in vette letters op het scherm wordt gezet, mits de <h1>-tag de klasse abcd heeft.

De officiële benaming voor deze techniek is: 'Adjacent sibling selectors'. Adjacent betekent zoveel als "naastgelegen", sibling betekent zoveel als "broer of zus".

Dit werkt alleen als de twee elementen allebei de zelfde 'parent'(ouder) hebben. In het eenvoudigste geval moeten stammen ze direct af van document (wat vaak het geval is).

Over de ~ in Style Sheets
Met een tilde tussen twee selectors geef je aan dat de selector die volgt na de plus, de eigenschappen krijgt die in de style worden genoemd. De selector de tilde moet na de selector vóór de tilde komen, het maakt niet waar. De code hieronder maakt dat de tekst in een paragraaf-tag die 'ergens' na een (de eesrte!) paragraaf-tag komt, een donkerblauwe kleur krijgt.
 
p ~ p { color:navy; }

De code:
 
h1 ~ h2 { font-weight:bold }
 
zorgt er voor dat een <h2>-tag die volgt na een <h1>-tag (in de dit geval de eerste in het doucment), in vette letters op het scherm wordt gezet.

Dit kan ook met klassen. De code:
 
h1.abcd ~ h2 { font-weight:bold }
 
zorgt er voor dat een <h2>-tag die volgt na een <h1>-tag, in vette letters op het scherm wordt gezet, mits de <h1>-tag de klasse abcd heeft.

De officiële benaming voor deze techniek is: 'General sibling selectors'. general betekent "Algemeen", sibling betekent zoveel als "broer of zus".

Dit werkt alleen als de twee elementen allebei de zelfde 'parent'(ouder) hebben. In het eenvoudigste geval moeten stammen ze direct af van document (wat vaak het geval is).

Alles samengevat

Tenslotte:
Op deze bladzijde zijn spaties gezet, voor en na de >, de + en de ~. Dat is goed voor de leesbaarheid, maar ze zijn niet nodig en mogen dus worden weggelaten.

Gerelateerd artikel: Over * en [] in Style Sheets.

 
terug

html-399; Laatste wijziging: 27 april 2020