Contenido del curso

Fundamentos de Programación

Desarrollando un juego con HTML y JavaScript

Estilos con CSS

Optimización de código

Mapa con canvas

Backend: videojuego multijugador

Estiliza botones de ataque con Flexbox

Resumen

Diseñar la pantalla de selección de ataques en Mokepon empieza por entender una idea clave: estilizar siempre desde el contenedor más grande hacia el más pequeño. Ese orden es el que define el layout de tu juego y lo que hace que CSS deje de ser un dolor de cabeza.

¿Qué es el layout y por qué empezar por el contenedor padre?

El layout es la estructura visual general de la página: cómo se acomodan los bloques grandes que después contienen otros más pequeños. Si arrancas por el contenedor padre, sus hijos se organizan solos dentro de esa caja.

En la pantalla de Mokepon, el contenedor principal es la sección con el ID seleccionar-ataque. Ese es el punto de partida [01:08]. A partir de ahí bajas al título, al subtítulo y, por último, a los botones de fuego, agua y tierra.

¿Por dónde empiezo a estilizar una página con CSS? Empieza por el contenedor más grande (el padre) y avanza hacia los elementos más pequeños. Así el layout queda consistente y evitas reescribir estilos.

¿Cómo aplico Flexbox al contenedor principal?

En el archivo CSS seleccionas el ID con #seleccionar-ataque y le aplicas display: flex. Pero hay una trampa: al recargar el navegador, el cambio no se ve [02:30].

Al inspeccionar el elemento aparece un style="display: block" directamente en la etiqueta. Eso es un estilo en línea, escrito desde JavaScript, y tiene mayor especificidad que cualquier regla de tu hoja CSS.

¿Por qué mis estilos CSS no se aplican? Probablemente hay un estilo en línea (style="...") escrito desde JavaScript. Los estilos en línea pesan más que los de la hoja CSS, así que tienes que modificarlos en el JS o usar mayor especificidad.

La solución es abrir el archivo JavaScript, ubicar el ID seleccionar-ataque y cambiar display: block por display: flex. Recargas, y ahora sí los elementos se acomodan en línea.

¿Cómo organizo los elementos de arriba hacia abajo y los centro?

Con display: flex activo, los hijos quedan en fila horizontal. Para apilarlos en columna usas flex-direction: column. Y para centrarlos en el eje horizontal, como cambiaste la dirección, la propiedad correcta es align-items: center, no justify-content.

  • display: flex activa el modelo flexible en el contenedor.
  • flex-direction: column apila los hijos verticalmente.
  • align-items: center los centra en el eje cruzado (horizontal cuando la dirección es columna).

Con esas tres líneas el contenedor principal queda listo. Y aquí viene un detalle práctico: si dejas display: flex también en el CSS, no se aplica porque gana el del JavaScript, así que puedes borrarlo de la hoja sin problema.

¿Cómo estilizo el título, el subtítulo y los botones de ataque?

El título reutiliza la misma clase que ya usaste en la pantalla anterior de Mokepon, así que hereda el estilo sin tocar nada. Para el subtítulo copias la clase existente y solo cambias el texto a elige tu ataque.

Los botones de fuego, agua y tierra son tres elementos con el mismo estilo. En lugar de usar sus IDs individuales, creas una clase compartida llamada boton-de-ataque y la aplicas a los tres. Esa decisión ahorra código y mantiene la consistencia visual.

¿Qué propiedades CSS necesita un botón estilo tarjeta?

La receta que se aplica al boton-de-ataque reutiliza ideas de las tarjetas de Mokepon de la pantalla anterior:

  1. background con un tono azul ya usado antes para mantener la paleta.
  2. padding: 10px para dar espaciado interno cómodo.
  3. box-sizing: border-box para que el padding no infle el tamaño total del botón.
  4. border-radius para esquinas redondeadas.
  5. border-color: transparent para quitar el borde por defecto sin perder la caja.
  6. width: 100px para fijar un ancho uniforme entre los tres botones.
  7. color: white para que el texto contraste sobre el fondo azul.

¿Para qué sirve box-sizing border-box? Hace que el padding y el border se cuenten dentro del ancho y alto que tú definiste. Sin esa propiedad, agregar padding agranda el botón más allá de los 100px que pediste.

Un detalle que vale recordar: los botones no heredan automáticamente la familia tipográfica del resto de la página, así que tienes que aplicarles la fuente directamente en su regla CSS.

¿Cómo se ve el resultado final de la pantalla de ataques?

Después de aplicar todo lo anterior, la pantalla queda con:

  • Un contenedor principal centrado, con sus hijos en columna.
  • Un título Mokepon reutilizando estilos previos.
  • Un subtítulo elige tu ataque con el mismo formato del subtítulo anterior.
  • Tres botones azules redondeados con los emojis de fuego, agua y tierra, texto blanco y ancho uniforme.

Ese es el poder de pensar en cajas grandes primero: cuando llegas a los detalles, el layout ya te sostiene el diseño.

Cuéntame en los comentarios qué tipografía elegiste, qué paleta de colores aplicaste y cómo te quedó tu pantalla de selección de ataques.