Cómo anidar estilos CSS con el preprocesador Sass

Si todavía no sabes lo que es Sass o cómo usarlo, en este post explico lo necesario para que puedas empezar a trabajar con él. Anidar estilos CSS es algo que no proporciona por defecto CSS3, pero si preprocesadores de CSS como Sass. En este post explicaré además de anidar estilos CSS con Sass, la referencia a selectores padre y combinadores de selectores.

Anidar estilos CSS con Sass

Cuando escribirnos una hoja de estilos, se repiten selectores para asignar reglas a elementos que están bajo algunos elementos. Por ejemplo, un caso muy común es el de un artículo/post.

Como podemos ver, el elemento de la clase .articulo, está en 3 reglas diferentes. Tanto h1, como p e img son hijos de .articulo y en Sass podemos evitar la repetición de código en casos como este. Por tanto, la versión anidada que usaríamos en Sass sería la siguiente.

Además de eliminar redundancia en el código, queda mucho más legible. Como puedes observar, para anidar elementos basta con que las reglas de elementos hijo estén dentro del selector padre dando como resultado el CSS que acabamos de ver.

Pero supongamos que .articulo tiene sus propias reglas, como por ejemplo un border y un padding. Podriamos agregarlos de la siguiente forma

De esta forma damos estilo tanto al elemento padre como a los hijos.

Otra opción que tenemos, es agregar grupos de selectores. Por ejemplo

Dando como resultado en el CSS

Cómo seleccionar el elemento padre en CSS

En Sass tenemos un selector para ello y es el «&». Cuando anidamos estilos como acabamos de ver, es posible que queremos hacer referencia al selector padre. Un caso que se puede dar perfectamente es que queremos escribir el estilo cuando un elemento esté en «hover» o incluso «active». En esos casos podemos hacer referencia al elemento padre empleando el &.

Una vez compilado, el CSS resultante sería el siguiente

Además, el selector & no se limita un nivel de profundidad en concreto, podríamos emplearlo en cualquiera.

En este caso el selector & hace referencia al link que está dentro de un elemento llamado «contenedor» y que a su vez está dentro de «principal».

Dando como resultado

Usar combinadores en Sass

En uno del os post que escribí, hablé de los distintos selectores. Entre ellos hable de los selectores combinadores que son «+», «>» y el «~».

El selector > que es conocido como el combinador de hijos, se usa para seleccionar el hijo inmediato del padre. Por ejemplo, podemos seleccionar los span que estén dentro de los párrafos de un articulo.

También podríamos seleccionar el siguiente elemento del mismo nivel con el «+».

De esta forma, el párrafo que esté justo después de un h1, será de color azul

Y para finalizar el selector ~, que nos permite seleccionar todos los elementos que vayan después de un elmento

Todos los párrafos a partir del párrafo con clase inicio, serán de color rojo.

Y hasta aquí anidar estilos CSS con Sass, espero que os haya gustado. A seguir picando 🙂