Selectores CSS: El Lenguaje de Vinculación
Antes de aprender sobre colores o márgenes, necesitas dominar cómo decirle al navegador 'a qué' aplicar esos estilos. Este módulo es la base de toda la arquitectura CSS, profundizando en la tríada esencial: Etiquetas, Clases e Identificadores.

Concepto: ¿Qué es un Selector?
Un selector es el patrón que utiliza el navegador para buscar elementos en tu página web. Es la primera parte de cualquier regla CSS. Sin un selector, el código CSS sería una lista de instrucciones sin destinatario. El selector responde a la pregunta: '¿A quién le pinto el fondo de rojo?'.

Selector de ID (Identificador)
El ID es un nombre único e irrepetible asignado a un solo elemento. Funciona como un número de documento. * **En HTML:** Atributo `id="nombre"`. * **En CSS:** Se usa el prefijo almohadilla `#`. Debido a su unicidad, se reserva para elementos estructurales singulares (como el `nav` principal o el `footer`).
Selector de Clase (Class Selector)
Las clases son grupos de estilos reutilizables. A diferencia del ID, una clase puede ser usada por infinitos elementos. * **En HTML:** Atributo `class="nombre"`. * **En CSS:** Se usa el prefijo punto `.`. Es la herramienta principal del desarrollador frontend para crear sistemas de diseño modulares (botones, tarjetas, alertas).

Comparativa Crítica: ID vs Class
Entender la diferencia es vital para la arquitectura del código: * **Reutilización:** ¿El estilo se usará más de una vez? Usa **Class**. * **Unicidad:** ¿Es el único elemento de su tipo en la página? Podrías usar **ID**. * **JavaScript:** Los IDs son ideales para 'ganchos' de JS, mientras que las Clases son ideales para estilos visuales.

Sintaxis de Atributos HTML
Errores comunes al escribir HTML pueden hacer que el CSS falle. Recuerda: 1. Los valores van entre comillas (`class="nombre"`). 2. En el HTML **NO** se escriben los símbolos `.` o `#`. Esos son exclusivos del CSS. 3. No uses espacios dentro del nombre de una sola clase (los espacios separan clases distintas).
El Selector Universal (*)
El asterisco `*` selecciona absolutamente todos los elementos del DOM. Es muy potente pero costoso en rendimiento si se abusa de él. Su uso principal es el 'CSS Reset': eliminar los márgenes y paddings inconsistentes que traen los navegadores por defecto para empezar a diseñar sobre un lienzo limpio.

Reglas de Naming (Nombres)
CSS tiene reglas estrictas para los nombres de clases e IDs: 1. Deben comenzar con una letra (nunca con un número). 2. No pueden contener espacios. 3. Son sensibles a mayúsculas y minúsculas (`.Boton` ≠ `.boton`). **Convención:** Usa siempre `kebab-case` (minúsculas separadas por guiones).

Resumen de Jerarquía
Para dominar CSS, visualiza los selectores como una pirámide: 1. **Base (Etiquetas):** Afectan a mucho, especificidad baja. 2. **Medio (Clases):** El equilibrio perfecto. Flexibles y modulares. 3. **Punta (IDs):** Muy específicos, uso restringido. Aprende a combinar los tres para una arquitectura robusta.
