Saltar al contenido principal
Codigo Heroe
Tarea anterior
Distribución general de la página12/18
A la lista de tareas
  1. 1. El modelo de cajas
  2. 2. El flujo
  3. 3. La distribución y el diseño de referencia
  4. 4. La propiedad display: tipos de caja
  5. 5. grid-template-columns: la plantilla del contenedor grid
  6. 6. La propiedad padding: el relleno
  7. 7. La propiedad margin: los márgenes
  8. 8. fr: una fracción del espacio disponible
  9. 9. La propiedad gap: espacio entre elementos grid
  10. 10. Terminamos la primera página
  11. 11. Usamos flexbox
  12. 12. La propiedad width: el ancho del elemento
  13. 13. justify-content: distribución en el eje principal
  14. 14. Márgenes automáticos
  15. 15. Agregamos un contenedor
  16. 16. Creamos columnas en el pie de página
  17. 17. Distribuimos las columnas del pie
  18. 18. Alineamos un elemento en vertical
Siguiente tarea
  • Matriz de skills
  • Cursos
  • Registro
  • Iniciar sesión

Loading…
En unos segundos, estará listo.

  • Teoría
  • Teoría

La propiedad width: el ancho del elemento

Ya cambiamos el tipo de caja de <main>, y su contenido formó dos columnas automáticamente. Pero sus tamaños todavía no coinciden con el diseño. Veamos cómo ajustarlos.

De forma predeterminada, los elementos flex no pasan a otra línea y pueden reducir su tamaño en función del contenido. La sección de la fotografía quedó con el ancho de la imagen. La otra sección ocupó el resto del espacio por su texto, que intenta aprovechar todo el ancho posible incluso dentro de un elemento flex.

Por eso conviene definir explícitamente el ancho de los elementos flex que forman las columnas. La forma más sencilla es usar width:

width: 550px;

De forma predeterminada, width define el ancho del contenido de la caja (content), sin incluir el relleno ni el borde.

Esquema del ancho de una caja

Veamos un ejemplo:

.box {
  width: 100px;
  padding-left: 20px;
  padding-right: 30px;
  border: 5px solid black;
}

El ancho total de esta caja es 160px: al ancho del contenido se suman el relleno y los bordes, 100px + 20px + 30px + 5px + 5px (un borde a cada lado).

Este comportamiento de width se puede cambiar con box-sizing, como vimos en «Modelo de cajas».

Agregaremos relleno a las columnas para que su contenido no quede pegado a los límites. padding funciona igual en los elementos flex y en las cajas de bloque.

Diseño del contenido principal

Definiremos un ancho fijo y relleno para las dos columnas: las secciones con las clases bio y photo.

La propiedad height permite definir la altura de una caja, aunque normalmente no se fija la altura de las cajas que organizan la página.

Otra forma de definir el tamaño de un elemento flex es usar flex-basis. Se explica en detalle en el capítulo sobre flexbox en profundidad.

  • index.html
  • style.css
HTML
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="portfolio-decorative.css"> <link rel="stylesheet" href="portfolio-outline.css"> <link rel="stylesheet" href="style.css"> <title>Portafolio</title> </head> <body> <header class="page-header"> <h1 class="title">Mapache No Identificado</h1> <p class="subtitle">Desarrollador web junior</p> </header> <main class="page-main"> <section class="bio"> <h2 class="section-title">Un poco sobre mí</h2> <p>Puedo crear páginas web o no crearlas. Puedo hacer que otros las creen y atormentar a quienes lo hacen mal.</p> <p>Puedo explicar por qué el presupuesto para crear 10 páginas alcanzó para 2 (una de ellas hecha por voluntarios) y todavía falta pagarle al diseñador por el desgaste del mouse. Puedo lograr que me crean.</p> </section> <section class="photo"> <h2 class="section-title">Fotografía</h2> <img src="img/avatar.svg" width="200" height="200" alt="Foto de Mapache No Identificado"> <p class="photo-caption">Mapache No Identificado Jr.</p> </section> </main> <footer class="page-footer"> <p class="contacts"> <a href="mailto:unknown@raccoon.ru">unknown@raccoon.ru</a><br> <a href="tel:+7999999999">+7 999 999-99-99</a> </p> <p class="copyright">© Mapache</p> <img class="logo" src="img/raccoon_logo.svg" width="70" height="54" alt="Logotipo del mapache"> </footer> </body> </html>
CSS
body { margin: 0; } .page-main { display: flex; }

El código ha cambiado, haz clic en "Actualizar" o activa la ejecución automática.

Ha ido a otra página

Haga clic dentro del mininavegador para poner el foco en esta ventana.

100%
ObjetivosRealizado
0
    1. Crea una regla para la clase bio y define un ancho de 270px.
    2. Crea una regla para la clase photo y define un ancho de 200px.
    3. Agrega 10px de relleno a todos los lados en ambas reglas.
    Codigo Heroe

    © 2023-2026, codigoheroe.com