Diseño Web 1 — 2026

Selectores Avanzados y Pseudoclases

Repaso de Selectores Básicos

* { color: red; }

p { color: red; }

.nombreClase { color: red; }

#nombreID { color: blue; }

p a { color: blue; }

p, a { color: blue; }

Repaso de Selectores Avanzados

input[type="radio"] { width: auto; }

p:first-child { font-size: 14px; }

p::first-letter { font-size: 14px; }

p::first-line { font-size: 14px; }

Selectores Avanzados para Cadenas de Texto

Atributos que Comienzan

elemento[atributo^="valor"] { /* cuando empieza con ese valor */ }

Ejemplo: a[href^="mailto:"] { ... }

Atributos que Terminan

elemento[atributo$="valor"] { /* cuando termina con ese valor */ }

Ejemplo: a[href$=".html"] { ... }

Atributos que Contienen

elemento[atributo*="valor"] { /* cuando contiene ese valor */ }

Ejemplo: h1[title*="capítulo"] { ... }

Selectores Compuestos - Pseudoclases

Algunos son selectores dinámicos ya que exigen una acción del usuario para su cumplimiento, indican un estado.

input:valid
input:invalid
tr:hover

Selectores para Relaciones

Descendencia General

p * a { color: blue; }
/* <a> "nieto" de <p> */

Hijo Directo

p > span { color: blue; }
/* <span> hijo directo de <p> */

Hermano Adyacente

h1 + h2 { color: red }
/* <h2> hermano estrictamente seguido de <h1> */

Hermano General

p ~ a { color: blue; }
/* <a> hermano no estrictamente seguido de <p> */

Selectores de Posición

nth-child

p:nth-child(5) { color: blue; }
/* <p> hijo 5to de su padre */

p:nth-last-child(5) { color: blue; }
/* <p> hijo 5to de su padre empezando a contar desde el final */

first-child y last-child

p:first-child { color: blue; }
p:last-child { color: blue; }
/* <p> primer hijo de su padre o último */

nth-of-type

p:nth-of-type(5) { color: blue; }
/* <p> hermano 5to de su tipo */

p:nth-last-of-type(5) { color: blue; }
/* <p> hermano 5to de su tipo contando desde el final */

Elementos Pares e Impares

li:nth-child(2n+1) { color: blue; }
li:nth-child(odd) { color: blue; }
/* <li> impares */

li:nth-child(2n) { color: blue; }
li:nth-child(even) { color: blue; }
/* <li> elementos pares */

Otros Selectores

:not()

:not(p) { color: blue; }
/* no <p> */

:not(.especial) { color: blue; }
/* elementos que no tengan la clase .especial */

:only-child

img:only-child { color: blue; }
/* hijo único */

:empty

section:empty { color: blue; }
/* <section> absolutamente vacíos */

::selection

p::selection { background-color: blue; }
/* color de la selección de un párrafo */