CSS y una de sus claves: la especificidad

Sin ningún tipo de dudas, uno de los conceptos claves en CSS es su especificidad. Y es que, si no tienes en cuenta ese concepto, probablemente, te ocurran cosas en la interfaz que no sepan de donde salen, y peor aún, no sabrás porque motivo ocurre.

Es por eso que en este artículo quería desarrollar este importante concepto, especialmente util si hace poco que estás aprendiendo más sobre CSS. En el caso de que ya tengas varios años en la industria, especialmente relacionada al Front-End, también estás invitado a continuar con la lectura de este artículo, que puede servirte de repaso de algunos temas.

Especificidad en CSS.

Uno de los conceptos más importantes en CSS, es justamente la especificidad. Pero, ¿cómo podemos definir a la especificidad?

Se conoce como especificidad al conjunto de reglas que toman los navegadores para determinar qué estilos tomará un determinado elemento, teniendo en cuenta que tipo de selector y lo específico que fue utilizado por los desarrolladores.

Aquí podemos establecer una constante, y es que mientras más específico sea el selector que se ha usado, mayor será la importancia que tendrá para el navegador. Es por eso que para comprender la jerarquía de la especificidad de CSS, lo mejor sería dar un vistazo a los diferentes selectores:

Asi que como vemos, dependiendo del uso que le demos a diferentes selectores, dependera en gran medida del selector que usemos. Es por eso que arme una tabla para ver la informacion que estuvimos analizando anteriormente, de una manera mas visual.

Tabla de especificidad

Uso de herramientas para la especificidad

Devtool: Para poder tener una visibilidad más completa sobre la especificidad en CSS, contamos con herramientas muy interesantes en la DevTool (Herramientas de Desarrolladores). Y es que cuando seleccionamos un determinado elemento, en la solapa de Estilos, si ponemos el cursor sobre las etiquetas, nos dará el nivel de especificidad de la etiqueta en cuestión.

VSCode: En visual studio code, relacionado con la funcionalidad de la DevTool, también tenemos una funcionalidad similar. Si con el cursor nos posicionamos en uno de los elementos de nuestra etiqueta en nuestro archivo CSS, también se nos mostrará la especificidad de nuestro elemento.

Specificity Graph: Esta es una herramienta que lo que nos permite es analizar cualquier codigo CSS y generar una grafica que muestra la especificidad en el eje vertical y la posicion de dicha especificidad en el codigo.

Conclusión

Sin dudas, el tener en mente, las formas en las que trabaja CSS, te ayudará mucho al momento de trabajar con él, especialmente cuando defines estilos a determinados elementos y ves que no se efectúan esos cambios. CSS, es un lenguaje de estilos que puede ser complejo usarlo al principio, pero a medida que vayas tomándole la mano, sin dudas, se te va a hacer más fácil.

Muchas gracias por llegar hasta acá ! Saludos !