y este en el body:

¡Hola, compañero desarrollador! Soy Albert Escamilla, desarrollador de interfaces de usuario en knowmad mood. Aparte de conocer las propiedades y valores de CSS, ser un maestro en este lenguaje significa entender sus fundamentos y aplicar las mejores prácticas para crear estilos eficientes y fáciles de mantener. En este artículo, vamos a bucear juntos en estrategias clave para mejorar tus habilidades de desarrollo en CSS, vamos a hablar de prácticas comunes que pueden estar frenando tu progreso, y compartiré contigo consejos prácticos para optimizar tu código y hacerlo más adaptable.

Trabaja con el flujo, no en contra él

Vamos a hablar del flujo en CSS, ese comportamiento predeterminado de los elementos del DOM que a veces olvidamos valorar. El flujo es similar a una coreografía de danza para los elementos de tu página web. Cuando un elemento sigue el flujo, se posiciona naturalmente en relación con los demás. Sin embargo, cuando empezamos a extraer elementos del flujo, las cosas pueden volverse caóticas. Imagínate una fiesta en la que todos bailan al unísono; si alguien se sale del ritmo, ¡se genera un desorden! Lo mismo sucede en CSS.

Evita posicionar los elementos de manera absoluta. En su lugar, es preferible trabajar dentro del flujo tanto como sea posible para prevenir que tus estilos se conviertan en un rompecabezas difícil de resolver.

Por ejemplo, si queremos que una cabecera esté siempre al principio de una página, es mejor usar position: sticky. Este comando mantiene el espacio que ocupa la cabecera, evitando que quede flotando con los elementos por debajo.

z-index: ¡No te vayas al extremo!

Ah, el misterioso z-index, esa propiedad que puede ser tanto tu mejor aliado como tu peor enemigo. Podríamos compararlo con la fila de asientos en un cine: si todos los asistentes desean ocupar la primera fila, el resultado será un desastre total! Esta analogía se aplica perfectamente a los valores de z-index cuando se utilizan de manera descontrolada y con cifras extremadamente altas. Mantenerlo simple y moderado es clave para evitar dolores de cabeza innecesarios y superposiciones inesperadas que pueden arruinar tu diseño. De esta manera, todos los elementos en tu página podrán encontrar su lugar adecuado sin tener que luchar por el mejor asiento.

Mi consejo sería tener una escala de z-index en variables CSS, esto te permitirá tener un mayor control y facilidad al gestionar la superposición de elementos. Por ejemplo:

:root {
	--index-1: 1;
	--index-2: 2;
	--index-3: 3;
}

Libertad de tamaño

¿Quién quiere estar atrapado en una talla única cuando se trata de diseño web? Desde los dispositivos móviles hasta las pantallas gigantes de escritorio, tus elementos de diseño CSS deberían ser como un traje a medida, ¡perfecto para cualquier ocasión! Evita los tamaños fijos como un guante demasiado apretado y deja que tus elementos respiren. ¿Cómo? Con unidades relativas y algunas propiedades como min-width y max-width.

Por ejemplo, imagina que estás creando un sitio web de noticias. Quieres que tus artículos se vean geniales en cualquier dispositivo, desde un teléfono inteligente hasta una tableta o una computadora de escritorio. En lugar de fijar el ancho de tus artículos en píxeles, podrías usar porcentajes o ems. Así, sin importar el tamaño de la pantalla, tus artículos se ajustarán suavemente y lucirán igual de elegantes en todas partes.

Las propiedades como min-width y max-width. Estas te permiten establecer límites para que tus elementos no se estiren demasiado o se encogen demasiado en pantallas extremadamente pequeñas o grandes. Es como tener un sastre virtual ajustando el traje de tus elementos para que siempre se vean impecables, sin importar el tamaño de la pantalla del usuario.

Con estas técnicas, tus elementos de diseño CSS se adaptarán a cualquier situación, garantizando una experiencia de usuario fluida y atractiva en todos los dispositivos. ¡Es la verdadera definición de un diseño adaptable y flexible!

Media queries con moderación:

Las media queries son como los condimentos en una receta: un toque añade sabor, pero ¡demasiado puede arruinar la comida! Es tentador llenar tu CSS con media queries para cada tamaño de pantalla posible, pero ¿realmente necesitas tantas?

Imagina que estás preparando una ensalada. Agregar un poco de sal y pimienta realza el sabor, pero si sigues agregando más y más condimentos, ¡puede que el plato se vuelva incomible! Lo mismo ocurre con las media queries en tu código CSS. Aunque son útiles para ajustar el diseño en diferentes dispositivos, usarlas en exceso puede hacer que tu código sea difícil de mantener y entender.

En lugar de eso, pruebas técnicas más fluidas que se adapten automáticamente al tamaño de la pantalla. Por ejemplo, en lugar de tener una media query para cada tamaño de dispositivo, podrías usar unidades relativas como porcentajes o vw (viewport width) para establecer el tamaño de tus elementos. Esto hará que tu diseño sea más adaptable sin necesidad de media queries adicionales.

Te voy a poner un ejemplo en código, supongamos que queremos crear un diseño de cuadrícula flexible que se adapte a diferentes tamaños de pantalla y tenga columnas que puedan expandirse hasta un cierto límite máximo y no colapsar más allá de un límite mínimo.

HTML

<div class="grid-container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

CSS

.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); /* Columnas que pueden expandirse entre 200px y 1fr */
  gap: 10px; /* Espacio entre los elementos */
}

En este ejemplo, estamos creando una cuadrícula con display: grid en el contenedor .grid-container. La propiedad grid-template-columns define las columnas de la cuadrícula. Usamos repeat(auto-fit, minmax(200px, 1fr)), lo que significa que las columnas se repetirán automáticamente y tendrán un ancho mínimo de 200px y un ancho máximo de 1fr (fracción de espacio disponible). Esto permite que las columnas se expandan y contraigan según el tamaño de la pantalla, pero nunca se reduzcan más allá de 200px ni se expandan más allá de ocupar todo el espacio disponible.

Flexbox y Grid dos superheroes aliados

Imagina a Flexbox y Grid como Batman y Robin, dos superhéroes del mundo CSS. Juntos, pueden enfrentar cualquier desafío y crear diseños que impresionarían incluso al mismísimo Joker. ¿Pero qué hace que cada uno sea tan especial?

Flexbox es como Robin, ágil y preciso. Es perfecto para organizar elementos en una sola dirección, como una fila de sillas en un cine. Con Flexbox, puedes alinear y distribuir elementos horizontal o verticalmente con facilidad. Es genial para crear diseños simples y flexibles, como barras de navegación, listas de elementos o diseños de tarjetas.

Por otro lado, Grid Layout es como Batman, el cerebro táctico del equipo. Con su habilidad para crear una cuadrícula de filas y columnas, Grid es ideal para diseños más complejos y estructurados. Puedes organizar tus elementos en una rejilla bidimensional, como un tablero de ajedrez, y controlar su ubicación y tamaño con precisión. Es perfecto para diseñar páginas completas con secciones bien definidas.

Ahora, ¿qué sucede cuando juntamos a estos dos superhéroes? ¡Magia! Podemos aprovechar lo mejor de ambos mundos para crear diseños verdaderamente impresionantes. Por ejemplo, podríamos usar Flexbox para organizar los elementos dentro de cada sección de nuestra página y luego usar Grid para colocar esas secciones en el Layout general. Esto nos brinda la flexibilidad de Flexbox junto con la estructura y el control de Grid, ¡como tener a Batman y Robin trabajando juntos para salvar Gotham!

En resumen

Mejorar tus habilidades de desarrollo en CSS implica trabajar con el flujo natural de los elementos, evitar el uso excesivo y descontrolado de propiedades como z-index, permitir la libertad de tamaño utilizando unidades relativas y propiedades como min-width y max-width, moderar el uso de media queries y aprovechar técnicas más fluidas, como unidades relativas y vw, y aprovechar al máximo las capacidades de Flexbox y Grid Layout para crear diseños flexibles y estructurados. Con estos consejos en mente, estarás en el camino hacia la maestría en el desarrollo de estilos web, creando código CSS eficiente, adaptable y fácil de mantener. ¡Disfruta del viaje hacia la excelencia en CSS! 🚀