Sanfeliu
  1. Apunts
  2. CSS
  3. Lliçó 03 de 8

Pseudoclasses, pseudoelements i combinadors

Selectors avançats de CSS: pseudoclasses d’estat i de posició, nth-child i not, pseudoelements com before i after, i els quatre combinadors.

Aquest capítol explora selectors avançats que et permeten controlar l'estil dels elements HTML segons el seu estat, posició o relació amb altres elements.


Pseudoclasses

Les pseudoclasses permeten seleccionar elements en certs estats o condicions. Es defineixen amb : després d’un selector.

Selectors de comportament

a:hover {
  color: green;
}
a:active {
  color: red;
}
a:link {
  color: blue;
}
a:visited {
  color: orange;
}

Selectors de posició

li:first-child {
  font-weight: bold;
}
li:last-child {
  font-weight: bold;
}
li:nth-child(3) {
  font-weight: bold;
}
li:nth-child(odd) {
  font-weight: bold;
}
li:nth-child(even) {
  font-weight: bold;
}
li:nth-child(5n) {
  font-weight: bold;
}

Diferències entre :nth-child() i :nth-of-type()

li:nth-child(2n) {
  font-weight: bold;
}
li:nth-of-type(2n) {
  color: blue;
}

Altres pseudoclasses útils

:not(p) {
  font-weight: bold;
}
p:not(.mi-classe) {
  font-weight: bold;
}

div:empty {
  background: green;
  height: 10px;
}

input:required {
  background-color: pink;
}
input:disabled {
  opacity: 0.5;
}
input[type="text"]:valid {
  background-color: lightgreen;
}
input[type="email"]:invalid {
  background-color: red;
}

Pseudoelements

Els pseudoelements permeten seleccionar i estilar parts específiques d’un element. S’escriuen amb ::.

Exemples comuns

p::before {
  content: "«";
}
p::after {
  content: "»";
}

p::first-line {
  text-transform: uppercase;
}
p::first-letter {
  font-size: 30px;
  color: red;
}

p::selection {
  background-color: orange;
  color: black;
}

Combinadors

Els combinadors permeten seleccionar elements basats en la seva relació amb altres elements.

Descendent (espai)

Selecciona qualsevol element dins d’un altre.

main h1 {
  background-color: yellow;
  color: black;
}

Fill directe (>)

Només selecciona fills directes.

section > h1 {
  background-color: yellow;
}

Germà adjacent (+)

Selecciona l’element immediat següent.

h1 + ul {
  background-color: green;
}

Germans generals (~)

Selecciona tots els germans posteriors.

h1 ~ p {
  background-color: aqua;
}

Aquest mòdul et dona les eines per fer CSS molt més específic, modular i potent. Dominar les pseudoclasses, pseudoelements i combinadors et permetrà adaptar l'estil de forma precisa segons l'estructura i l'estat dels elements.