Contenido del curso

Sitios Code con HTML y CSS

Centrado vertical con CSS transform

Resumen

Estilizar un hero en CSS implica resolver tres problemas concretos: alinear imagen y texto, dar respiración al diseño y centrar verticalmente el contenido. Aquí aprendes a hacerlo combinando Flexbox, padding, margin y la propiedad transform: translate, paso a paso, sobre un layout que ya tiene posicionamiento absoluto.

¿Cómo se aplica padding y color al contenedor del hero?

El primer ajuste es darle aire al contenedor principal y resolver el contraste con el fondo oscuro. Sobre la clase .informacion-contenedor se define un width: 100% para que ocupe todo el navegador, un color: white para que el texto sea legible sobre fondo negro, y un padding: 0 50px que separa el contenido de los bordes laterales sin agregar espacio arriba o abajo [1:38].

Este padding es el margen interno del modelo de caja. En el inspector de elementos aparece como una franja verde a los costados, justo entre el borde del contenedor y su contenido.

¿Qué hace la propiedad color en CSS? Cambia el color del texto de un elemento. Si tu fondo es oscuro, usar color: white asegura que la tipografía se lea sin problema.

¿Cómo poner imagen y texto uno al lado del otro con Flexbox?

Por defecto, los elementos block se apilan verticalmente. Para colocar la imagen a la izquierda y el texto a la derecha basta con una línea: display: flex sobre el contenedor padre [3:45]. Esa instrucción convierte al contenedor en un flex container y reorganiza a sus hijos en fila.

¿Cómo separar el texto de la imagen?

Una vez que la imagen y el texto están alineados horizontalmente, quedan demasiado pegados. La solución es seleccionar específicamente la caja del texto con #hero .informacion-contenedor .informacion y aplicarle:

  • margin-left: 20px para crear separación respecto a la imagen.
  • font-weight: bold para reforzar visualmente la jerarquía del texto.

El font-weight controla el grosor de la tipografía, equivalente a poner las letras en negritas.

¿Por qué un span no acepta margin sin cambiar su display?

Al estilizar el <span> que contiene el usuario (la arroba), se le aplica color: #B5B5B5 para darle un tono gris y margin-bottom: 70px para separarlo del texto descriptivo. Pero hay un detalle: el margen no se aplica [6:55].

Esto pasa porque <span> tiene por defecto display: inline, y los elementos inline no respetan márgenes verticales. La solución es usar display: inline-block, que conserva el comportamiento inline pero permite aplicar márgenes como un elemento block.

¿Cuándo usar inline-block en CSS? Cuando necesitas que un elemento mantenga su flujo en línea pero acepte propiedades de caja como margin, padding o width.

¿Cómo centrar verticalmente con transform translate?

El contenedor está posicionado con position: absolute y top: 0, lo que lo ancla al borde superior. Cambiar a top: 50% parece la solución obvia, pero genera un efecto inesperado: el contenido empieza a la mitad del navegador en lugar de quedar centrado [9:30].

Esto ocurre porque top: 50% mide desde el origen del elemento, no desde su centro. Para corregirlo se agrega:

css transform: translateY(-50%);

Esta propiedad traslada el elemento un 50% de su propia altura hacia arriba, compensando el desfase y dejándolo perfectamente centrado en el eje vertical.

¿Qué hace transform translate exactamente?

La propiedad transform permite mover, rotar o escalar elementos sin afectar el flujo del documento. La función translateY(-50%) específicamente desplaza el elemento sobre el eje Y una distancia equivalente al 50% de su propia altura. Es un truco espacial muy usado para centrar elementos posicionados de forma absoluta.

Te recomiendo jugar con distintos valores de translate: prueba con -25%, -75% o valores positivos, y observa cómo cambia la posición. La práctica es lo que te ayuda a interiorizar cómo funciona cada propiedad.

Conceptos y datos clave que aparecen en la clase

  • width: 100% aplicado al contenedor para abarcar todo el ancho del navegador [1:20].
  • padding: 0 50px para crear separación lateral sin afectar arriba y abajo [1:55].
  • display: flex como estrategia de alineación horizontal [3:45].
  • margin-left: 20px para separar texto e imagen [5:30].
  • font-weight: bold para reforzar la jerarquía tipográfica [5:50].
  • color: #B5B5B5 como gris del usuario o arroba [7:10].
  • display: inline-block para habilitar márgenes en un span [8:15].
  • transform: translateY(-50%) combinado con top: 50% para centrado vertical [10:20].

¿Qué propiedad de CSS te ha costado más entender? Cuéntame en los comentarios cómo aplicaste transform translate en tu propio proyecto.