Saltar al contenido principal
Codigo Heroe
Tarea anterior
Distribución general de la página14/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

Márgenes automáticos

Ya terminamos con las columnas. Ahora ajustaremos el propio <main>. Según el diseño, el contenido principal debe tener un ancho fijo y estar centrado en la página:

Diseño del contenido principal

Es frecuente tener que centrar un elemento. Hay muchas formas de hacerlo; usaremos una de las más habituales. Necesitamos:

  • definir un ancho menor que el del elemento padre;
  • agregar márgenes automáticos a la derecha y a la izquierda.

Empecemos por el ancho. El elemento padre de <main> es <body>, una caja de bloque que ocupa todo el ancho de la ventana del navegador. Por eso basta con que <main> sea más estrecho que la ventana para que también sea más estrecho que su elemento padre.

Después definiremos los márgenes. Hasta ahora usamos valores en píxeles, pero margin también admite auto. Por ejemplo:

margin-left: auto;

Este valor le pide al navegador que calcule el margen. El navegador es generoso: le asigna todo el espacio libre del contenedor padre. Por eso, si agregamos un margen izquierdo automático, el elemento queda pegado al lado derecho de su elemento padre.

Si ambos márgenes horizontales son automáticos, el espacio libre se reparte por igual entre ellos y el elemento queda centrado.

Esquema del centrado horizontal

Ya sabemos cómo centrar el contenido principal. Definiremos su ancho con width y agregaremos márgenes automáticos a ambos lados.

Este recurso es práctico, pero tiene limitaciones. No permite centrar cajas en línea. Además, dentro de una caja de bloque, a diferencia de un contenedor flex, solo permite centrar un elemento en horizontal.

  • 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; justify-content: space-between; } .bio { width: 270px; padding: 10px; } .photo { width: 200px; padding: 10px; }

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. Define un ancho de 550px para la clase page-main.
    2. Agrega un margen izquierdo automático.
      El contenido principal quedará pegado al borde derecho de la página.
    3. Ahora agrega un margen derecho automático.
      El contenido principal quedará centrado en la página.
    Codigo Heroe

    © 2023-2026, codigoheroe.com