0Pricing
CSS Academy · Lección

Anidamiento nativo de CSS

Escriba reglas CSS anidadas sin un preprocesador mediante la especificación de anidamiento nativo de CSS.

Anidamiento nativo de CSS es una lección gratuita de CSS Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de CSS Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CSS Academy incluye 4 lecciones en total.

¿Qué es el anidamiento de CSS?

El anidamiento nativo de CSS (línea base de 2024, disponible en todos los navegadores modernos) permite escribir reglas CSS dentro de otras reglas, reproduciendo la sintaxis de anidamiento que antes solo estaba disponible en los preprocesadores Sass/Less. Las reglas anidadas heredan automáticamente el contexto del selector padre.

Sintaxis básica del anidamiento

Escriba los selectores secundarios dentro del bloque de una regla padre. El navegador combina automáticamente los selectores padre y secundario. Un & (selector de anidamiento) hace referencia explícita al selector padre para modificadores y pseudoclases.

<div class="card is-active">
  <div class="title">Nested Card Title</div>
  <p>Card body text.</p>
</div>

El selector de anidamiento &

& representa explícitamente el selector padre en las reglas anidadas. Úselo para pseudoclases (&:hover), pseudoelementos (&::before), clases modificadoras (&.active) y selectores de atributos (&[disabled]). Sin &, las reglas anidadas crean selectores descendientes.

Anidamiento de pseudoelementos

Anide las reglas de los pseudoelementos de forma natural dentro del elemento padre: .button { &::before { content: ""; } &::after { content: ""; } }. Así, todos los estilos del botón quedan agrupados en un mismo lugar y se evita repetir el selector, como es necesario en CSS plano.

Anidamiento de reglas at

Las consultas de medios y otras reglas at se pueden anidar dentro de las reglas (Chrome 112+, Firefox 117+): .card { padding: 1rem; @media (min-width: 768px) { padding: 2rem; } }. Los estilos adaptables permanecen junto al elemento al que afectan, en lugar de estar en un bloque independiente de consulta de medios al final del archivo.

Especificidad de los selectores

El anidamiento no cambia las reglas de especificidad: el selector combinado tiene la misma especificidad que tendría si se escribiera de forma plana. .card .title, escrito de forma anidada o plana, tiene la misma especificidad (0,2,0). El anidamiento es una comodidad sintáctica, no un cambio en la especificidad.

Descendiente implícito frente a & explícito

Un selector anidado sin & crea un selector descendiente: .card { .title {} } se compila como .card .title. Con &: .card { &.active {} } se compila como .card.active (sin espacio: es una clase modificadora, no un descendiente).

BEM con anidamiento nativo

El anidamiento nativo no es ideal para BEM: los selectores .block__element y .block--modifier son cadenas, y el anidamiento no puede construirlos usando solo &. Use el anidamiento para pseudoclases y estructuras de componentes anidadas, no para concatenar cadenas de BEM (lo que todavía requiere un preprocesador).

Migración desde Sass

La mayor parte de la sintaxis de anidamiento de Sass es idéntica a la del anidamiento nativo de CSS. La excepción es que Sass permite la concatenación de cadenas con &-modifier, mientras que CSS nativo no. Para migrar, busque patrones como &- o &__ y convierta en planas esas reglas concretas, manteniendo el resto del anidamiento.

Compatibilidad con navegadores

El anidamiento nativo de CSS es compatible con Chrome 112+, Firefox 117+ y Safari 16.5+. Para admitir navegadores antiguos, use PostCSS con postcss-nesting a fin de transformar la sintaxis de anidamiento nativo en CSS plano durante la compilación, lo que permite escribir hoy con anidamiento nativo.

DevTools y anidamiento

Chrome DevTools muestra las reglas anidadas en el panel Styles con su forma anidada. Al hacer clic en una regla anidada, se accede a la ubicación correcta del código fuente en el panel Sources. Depurar CSS anidado es tan claro como depurar CSS plano en las versiones modernas de DevTools.

Comprobación de conocimientos

¿Cuál es la diferencia entre anidar con el selector & y hacerlo sin él?

Resumen

El anidamiento nativo de CSS permite usar una sintaxis anidada similar a la de Sass en CSS plano. El selector & crea selectores compuestos para pseudoclases, pseudoelementos y modificadores. Las consultas @media anidadas mantienen los estilos adaptables junto a sus elementos. PostCSS transforma el anidamiento nativo para los navegadores antiguos, lo que permite adoptarlo gradualmente desde hoy.

Preguntas frecuentes

¿La lección «Anidamiento nativo de CSS» es gratis?

Sí — el texto completo de «Anidamiento nativo de CSS» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de CSS Academy, actualiza a CoddyKit PRO. El curso de CSS Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Anidamiento nativo de CSS»?

Escriba reglas CSS anidadas sin un preprocesador mediante la especificación de anidamiento nativo de CSS. Practicas CSS Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar CSS Academy?

No se requiere experiencia previa. CSS Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Anidamiento nativo de CSS»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de CSS Academy?

Sí. Cada lección de CSS Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Anidamiento nativo de CSS
  2. Pseudo-clase relacional :has()
  3. @scope para estilos con ámbito
  4. API View Transitions
← Volver a CSS Academy