
![CSS](https://res.cloudinary.com/nucliweb/image/upload/c_scale,dpr_auto,f_auto,q_auto,w_896/v1694444780/joanleon.dev/assets/css-maltratado/css.png)

Hace unos días comentaba en [Twitter](https://twitter.com/nucliweb/status/1344293139209707520) y en [LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:6750058724720738304/), que el artículo con más visitas que he tenido este año, ha sido en el que hice unas reseñas de [Libros CSS](https://joanleon.dev/libros-css). Hasta aquí todo bien, simplemente comparto ver que hay cierto interés por esas reseñas de libros que hablan de **CSS** 😊.

El detonante que me ha llevado a escribir este artículo ha sido un comentario que me hizo mi compañero de profesión [Hèctor](https://www.linkedin.com/in/hectorpascualc/), donde me comenta con la frase que da título al artículo.

![Es curioso cómo de olvidado y maltratado está el CSS](https://res.cloudinary.com/nucliweb/image/upload/c_scale,dpr_auto,f_auto,q_auto,w_896/v1694444780/joanleon.dev/assets/css-maltratado/comment.png)

<div style="margin-bottom: 4em" />

### ¿Por qué no gusta CSS?

Sinceramente no lo sé, a mi sí que me encanta, lo único que se me ocurre es **que no lo conocen**.

> Como especie, tenemos el cerebro diseñado para rechazar lo desconocido. Como raza, tenemos la facilidad de criticar o despreciar lo desconocido.

Me siento incapaz de juzgar un lenguaje de programación, CSS no lo es... que os veo venir _(pero ya hablaremos de eso cuando CSS Houdini esté mas avanzado)_, fueron creados y diseñados para resolver un problema concreto, en un **momento** dado. Algo a lo que mucha gente tiene manía, la cascada, tuvo su razón en el momento que nació CSS para dar estilos al contenido de la web. Y no sirve de nada criticarlo, si conoces cómo funciona y el motivo por el que se decidió implementar esta funcionalidad (no es un bug) al lenguaje, sabrás cómo aprovecharla a tu favor y como esquivarla en los momentos que sean necesarios.

Yo no puedo decir que _"pon aquí tu lenguaje favorito"_ no sirve, está mal pensado o que no se parece a éste o aquel lenguaje al que estoy acostumbrado. No puedo criticar algo que no conozco.

<div style="margin-bottom: 4em" />

### ¿Por qué se olvidan de CSS?

Tampoco lo sé. Hay mucha formación que obvia, o pasa de puntillas por los temas de CSS. Es curioso ver bootcamps que tiene un programa de formación web y en el temario el peso del contenido CSS es escaso o nulo.

Hay tanto hype con JavaScript, ojo que lo tiene bien merecido, que hace sombra a CSS. Lo cual es curioso porque CSS es parte de la web.

He visto en mucho código, propiedades CSS que contradicen la propiedad anterior o propiedades innecesarias.

<div style="margin-bottom: 2em" />

#### Flexbox

Este es un código que he visto varias veces en Pull Requests.

```html
<section class="wrapper">
  <div>...</div>
  <div>...</div>
  <div>...</div>
</section>
```

<div style="margin-bottom: 2em" />

```css
.wrapper {
  display: flex;
  flex-direction: column;
}
```

<div style="margin-bottom: 2em" />

Con `display: flex` hacemos que los elementos `<div>` sean flexibles, pero como se quiere que se muestren uno bajo el otro, se ha añadido `flex-direction: column`. Pero **atención**, ese sería el comportamiento por defecto de los elementos `<div>`, no hace falta añadir flexbox en este caso.

Conociendo CSS, sabremos que no tenemos que añadir `display: flex` por defecto, y sabríamos que nos sería muy útil para poder controlar el espaciado y alineación entre los elementos, cambiar su comportamiento entre diferentes media queries o cambiar el orden de presentación, donde sí que tendría sentido añadirlo.

<div style="margin-bottom: 4em" />

#### !important

El uso del `!important` escapa a nuestras posibilidades, [más de 27 millones](https://github.com/search?l=CSS&q=%21important&type=code) en repositorios públicos en GitHub.

`!important` tiene su uso, es necesario y no desaparecerá. Pero usarlo mal nos traerá problemas en el mantenimiento de ese código. Recuerda, si tienes que añadir un `!important` es que hay algo mal, en ocasiones es porque estás utilizando un framework o plugin que tiene un comportamiento que no quieres, lo cual pone sobre la mesa la pregunta ¿realmente necesitas ese plugin o framework si no cubre tus necesidades?, pero bueno, eso es otro debate.

<div style="margin-bottom: 4em" />

### CSS es parte de la Web

Querer desarrollar cualquier solución con tecnología web, implica conocer HTML, CSS, JavaScript y las APIs Web. Auto definirse como FrontEnd, pero no querer tocar CSS, en mi opinión, esa persona **no es frontend**.

`#CSSisPartOfTheWeb`

<div style="margin-bottom: 4em" />

### Divulgación y apoyo a CSS

No todo el mundo tiene que divulgar sobre CSS _(yo seguiré haciéndolo)_, pero **nadie tendría que despreciarlo**. Al fin y al cabo, son las soluciones que otras personas han decidido como solución a un problema concreto, en un momento dado.
