HTML en CSS leren: Combinaties
Selectors combineren
Fons wil de alinea's in de kaartjes van de affiche grijs. Met `p` kleurt hij élke alinea op de site, ook het adres onderaan. Tijd om selectors te combineren.
Ergens binnenin
Twee selectors met een spatie ertussen zoeken het tweede element ergens binnen het eerste: .stuk p vindt elke <p> in een element met de class stuk, hoe diep ook.
Zo kies je precies de alinea's van de kaartjes, en blijven de andere alinea's van de pagina met rust.
Je leest zo'n selector het makkelijkst van rechts naar links: "elke p, die ergens in een .stuk staat".
.stuk p { color: #6b5b5b;}Alleen de kinderen
Soms wil je niet alles binnenin, maar alleen de kinderen: de elementen die rechtstreeks in de ouder staan. Daarvoor zet je een > tussen de selectors.
In het eerste kaartje staat een citaat van een recensent, een <blockquote> met een eigen <p>. .stuk > p vindt de alinea's die rechtstreeks in het kaartje staan, maar niet die in het citaat: haar ouder is de <blockquote>.
<!DOCTYPE html><html lang="nl"> <head> <title>Toneelkring Doek Open</title> <link rel="stylesheet" href="basis.css"> <link rel="stylesheet" href="style.css"> </head> <body> <header> <h1>Doek Open</h1> <p class="slogan">Toneelkring uit Geel, sinds 1952</p> <nav id="menu"> <ul> <li><a href="index.html">Home</a></li> <li class="actief"><a href="affiche.html">Affiche</a></li> <li><a href="lid-worden.html">Lid worden</a></li> <li><a href="contact.html">Contact</a></li> </ul> </nav> </header> <main> <section id="affiche"> <h2>Op de affiche</h2> <article class="stuk"> <h3>De Vrek</h3> <p class="datum">14 tot 16 maart</p> <p>Een klucht naar <a href="https://nl.wikipedia.org/wiki/Molière">Molière</a>, over een man die zijn geld liever ziet dan zijn kinderen.</p> <blockquote> <p>Ik heb in jaren niet zo gelachen.</p> </blockquote> <a class="knop" href="https://tickets.doekopen.example/vrek">Tickets</a> </article> <article class="stuk"> <h3>Moord in de Pastorij</h3> <p class="datum">9 tot 11 mei</p> <p>Iedereen heeft een alibi, behalve de kat.</p> <a class="knop" href="https://tickets.doekopen.example/pastorij">Tickets</a> </article> </section> <section id="speeldata"> <h2>Speeldata</h2> <table> <tr> <th>Dag</th> <th>Uur</th> </tr> <tr> <td>Vrijdag 14 maart</td> <td>20 uur</td> </tr> <tr> <td>Zaterdag 15 maart</td> <td>20 uur</td> </tr> <tr> <td>Zondag 16 maart</td> <td>15 uur</td> </tr> </table> </section> <section id="downloads"> <h2>Om te lezen</h2> <ul> <li><a href="programma.pdf">Het programmaboekje</a></li> <li><a href="reglement.pdf">Het reglement</a></li> <li><a href="https://nl.wikipedia.org/wiki/De_vrek">Over De Vrek</a></li> <li><a href="mailto:kassa@doekopen.example">Mail de kassa</a></li> </ul> </section> </main> <footer> <p>Zaal De Kroon, Kerkstraat 21, Geel</p> </footer> </body></html>.stuk > p { color: #6b5b5b;}Groeperen met een komma
Moeten meer elementen dezelfde stijl krijgen, dan zet je hun selectors met een komma voor één regel: h2, h3 { … } geldt voor elke h2 én elke h3.
Let op het verschil met een spatie: h2 h3 zoekt een h3 binnen een h2, en die is er nooit.
En is één selector in de groep fout geschreven, dan laat de browser de hele regel vallen, ook voor de andere selectors.
h2, h3 { font-family: Georgia, serif;}Probeer het zelf
Maak de alinea's die rechtstreeks in een kaartje staan grijs (#6b5b5b), en de links in het menu vet. Het citaat en de andere links blijven zoals ze zijn.
/* Jouw CSS komt hier. */<!DOCTYPE html><html lang="nl"> <head> <title>Toneelkring Doek Open</title> <link rel="stylesheet" href="basis.css"> <link rel="stylesheet" href="style.css"> </head> <body> <header> <h1>Doek Open</h1> <p class="slogan">Toneelkring uit Geel, sinds 1952</p> <nav id="menu"> <ul> <li><a href="index.html">Home</a></li> <li class="actief"><a href="affiche.html">Affiche</a></li> <li><a href="lid-worden.html">Lid worden</a></li> <li><a href="contact.html">Contact</a></li> </ul> </nav> </header> <main> <section id="affiche"> <h2>Op de affiche</h2> <article class="stuk"> <h3>De Vrek</h3> <p class="datum">14 tot 16 maart</p> <p>Een klucht naar <a href="https://nl.wikipedia.org/wiki/Molière">Molière</a>, over een man die zijn geld liever ziet dan zijn kinderen.</p> <blockquote> <p>Ik heb in jaren niet zo gelachen.</p> </blockquote> <a class="knop" href="https://tickets.doekopen.example/vrek">Tickets</a> </article> <article class="stuk"> <h3>Moord in de Pastorij</h3> <p class="datum">9 tot 11 mei</p> <p>Iedereen heeft een alibi, behalve de kat.</p> <a class="knop" href="https://tickets.doekopen.example/pastorij">Tickets</a> </article> </section> <section id="speeldata"> <h2>Speeldata</h2> <table> <tr> <th>Dag</th> <th>Uur</th> </tr> <tr> <td>Vrijdag 14 maart</td> <td>20 uur</td> </tr> <tr> <td>Zaterdag 15 maart</td> <td>20 uur</td> </tr> <tr> <td>Zondag 16 maart</td> <td>15 uur</td> </tr> </table> </section> <section id="downloads"> <h2>Om te lezen</h2> <ul> <li><a href="programma.pdf">Het programmaboekje</a></li> <li><a href="reglement.pdf">Het reglement</a></li> <li><a href="https://nl.wikipedia.org/wiki/De_vrek">Over De Vrek</a></li> <li><a href="mailto:kassa@doekopen.example">Mail de kassa</a></li> </ul> </section> </main> <footer> <p>Zaal De Kroon, Kerkstraat 21, Geel</p> </footer> </body></html>body { margin: 0; font-family: system-ui, sans-serif; background: #fbf6ee; color: #2b1d1d;}header { padding: 20px 16px 14px; background: #5c1515; color: #f5e6c8;}header h1 { margin: 0;}.slogan { margin: 4px 0 12px;}#menu ul { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; padding: 0; list-style: none;}#menu a { color: #f5e6c8;}main { padding: 8px 16px 24px;}h2 { color: #7a1c1c;}a { color: #7a1c1c;}.stuk { margin: 12px 0; padding: 12px 16px; border-radius: 16px; background: #ffffff;}.stuk h3 { margin: 0 0 4px;}blockquote { margin: 8px 0; padding-left: 12px; border-left: 3px solid #d4a017;}.knop { display: inline-block; padding: 6px 16px; border-radius: 999px; background-color: #7a1c1c; color: #ffffff; text-decoration: none;}table { border-collapse: collapse;}th,td { padding: 6px 10px; border: 1px solid #e6d3c3; text-align: left;}footer { padding: 12px 16px; background: #5c1515; color: #f5e6c8;}Klaar voor meer?
De volledige les heeft 5 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.
Begin aan de les