concepto CSS vigente

Fundamentos de CSS

Fundamentos de CSS

CSS le indica al navegador cómo presentar HTML. Para hacerlo, tres pilares se combinan: la sintaxis (cómo se escribe una regla), los selectores (a qué elementos se aplica) y la cascada (quién gana cuando hay conflicto).

CSS (Cascading Style Sheets) es el lenguaje que controla la presentación visual de un documento HTML. Mientras HTML describe qué hay en la página — un encabezado, un párrafo, una imagen — CSS describe cómo se ve: el color, el tamaño, la posición, los márgenes, la tipografía. Los dos lenguajes están diseñados para separarse: HTML aporta el significado; CSS aporta la forma.

La unidad fundamental de CSS es la regla: una combinación de selector, propiedad y valor. El selector indica a qué elementos del documento se aplica la regla. La propiedad nombra qué aspecto visual se controla. El valor indica cómo. Esta tríada — selector → propiedad → valor — es el alfabeto de CSS; todo lo demás (herencia, cascada, especificidad, custom properties) es cómo el navegador gestiona múltiples reglas que interactúan entre sí.

Lo que distingue a CSS de otros lenguajes de presentación es la cascada: el mecanismo por el que el navegador resuelve los conflictos cuando varias reglas apuntan al mismo elemento. La cascada no es un problema a evitar — es una característica de diseño que permite que los estilos del navegador, del autor y del usuario convivan y se sobreescriban de manera predecible. Entender la cascada es la diferencia entre luchar contra el CSS y usarlo con confianza.

Cómo funciona

Sintaxis — cómo se escribe CSS

Una regla CSS tiene una estructura fija:

selector {
  propiedad: valor;
}

El selector identifica los elementos a los que aplica la regla. Las llaves {} delimitan el bloque de declaraciones. Cada declaración es un par propiedad: valor terminado en punto y coma. Un mismo bloque puede tener tantas declaraciones como necesite. Un mismo selector puede agrupar múltiples declaraciones; múltiples selectores pueden apuntar al mismo bloque separándolos con coma.

CSS se aplica al documento de tres formas: hoja de estilos externa (el método recomendado, con <link rel="stylesheet">), bloque <style> en el <head>, o atributo style en el elemento. El método externo es el preferido porque separa completamente el CSS del HTML y permite reutilizarlo en múltiples páginas. Ver aplicar-css y sintaxis-css.

Selectores — a qué se aplica

Los selectores son el lenguaje con el que CSS identifica los elementos del documento. El selector más simple es el selector de tipo, que apunta a todos los elementos de una etiqueta (p, h1, a). El selector de clase (.mi-clase) es el más usado en producción: apunta a todos los elementos con ese atributo class. El selector de ID (#mi-id) es de aplicación única — solo debe existir un elemento con ese ID en la página.

Los selectores se combinan. Un selector descendiente (article p) apunta a todos los <p> dentro de un <article>. Un selector hijo directo (ul > li) apunta solo a los <li> inmediatos de un <ul>, no a los anidados. Las pseudo-clases (:hover, :focus, :nth-child()) extienden los selectores para apuntar a elementos según su estado o posición. Los pseudo-elementos (::before, ::after, ::first-line) apuntan a partes virtuales de los elementos.

Ver selectores, pseudo-clases, pseudo-elementos.

Cascada — quién gana cuando hay conflicto

Cuando dos reglas apuntan al mismo elemento y a la misma propiedad, una de las dos gana. La cascada es el algoritmo que lo resuelve, y lo hace en tres pasos en orden:

  1. Origen: el CSS del autor tiene más peso que el del navegador. El CSS marcado !important invierte esa jerarquía.
  2. Especificidad: entre reglas del mismo origen, gana la más específica. Los selectores de ID son más específicos que los de clase; los de clase, más que los de tipo.
  3. Orden: si el origen y la especificidad son iguales, gana la regla que aparece más tarde en el CSS.

La herencia es un mecanismo complementario: ciertas propiedades (las tipográficas, el color del texto) se propagan automáticamente de un elemento padre a sus hijos. Las propiedades de layout y box model no se heredan. Ver cascada, especificidad, herencia.

Sintaxis cómo se escribe selector { propiedad: valor; } Selectores a qué se aplica p · tipo .clase #id :hover · pseudo Cascada quién gana 1. Origen 2. Especificidad 3. Orden

La cascada resuelve qué regla aplica cuando hay conflicto origen → especificidad → orden de aparición

Cuándo usar qué

SituaciónHerramienta recomendada
Estilo global para todos los <p>Selector de tipo
Estilo de un componente reutilizableSelector de clase
Estilo de un elemento único en la páginaSelector de ID (con moderación)
Estilo al pasar el cursorPseudo-clase :hover
Sobreescribir estilo heredadoDeclaración más específica en el elemento hijo
Sobreescribir todo (emergencia)!important (evitar si hay alternativa)

Clase vs. ID: en la práctica, los selectores de clase son la herramienta de trabajo cotidiana. Los IDs tienen especificidad alta y son únicos por página, lo que los hace difíciles de sobreescribir y reutilizar. Guardá los IDs para anclas de navegación y JavaScript, no para aplicar estilos.

Cascada vs. herencia: la cascada resuelve conflictos entre reglas que apuntan al mismo elemento. La herencia propaga valores de padre a hijo automáticamente, sin que haya conflicto — simplemente el hijo toma el valor del padre si no declara el suyo.