Saltar al contenido

Constrúyelo tú mismo - Header

Ya que tu sitio será visto en diferentes dispositivos, ¡es hora de crear una navegación de página que pueda responder a múltiples tamaños de pantalla!

Prepárate para…

  • Crea un Header para tu sitio que contenga el componente de Navegación
  • Haz que el componente de Navegación sea responsive

Pruébalo tú mismo - Construye un nuevo componente Header

Sección titulada “Pruébalo tú mismo - Construye un nuevo componente Header”
  1. Crea un nuevo componente Header. Importa y usa tu componente Navigation.astro existente dentro de un elemento <nav> que está dentro de un elemento <header>.

    ¡Muéstrame el código!

    Crea un archivo llamado Header.astro en src/components/

    src/components/Header.astro
    ---
    import Navigation from './Navigation.astro';
    ---
    <header>
    <nav>
    <Navigation />
    </nav>
    </header>
  1. En cada página, reemplaza tu componente <Navigation/> existente con tu nuevo header.

    ¡Muéstrame el código!
    src/pages/index.astro
    ---
    import Navigation from '../components/Navigation.astro';
    import Header from '../components/Header.astro';
    import Footer from '../components/Footer.astro';
    import '../styles/global.css';
    const pageTitle = "Home Page";
    ---
    <html lang="en">
    <head>
    <meta charset="utf-8" />
    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
    <meta name="viewport" content="width=device-width" />
    <meta name="generator" content={Astro.generator} />
    <title>{pageTitle}</title>
    </head>
    <body>
    <Navigation />
    <Header />
    <h1>{pageTitle}</h1>
    <Footer />
    </body>
    </html>
  2. Revisa la vista previa de tu navegador y verifica que tu header se muestre en cada página. Aún no se verá diferente, pero si inspeccionas tu vista previa usando dev tools, verás que ahora tienes elementos como <header> y <nav> alrededor de tus enlaces de navegación.

  1. Actualiza Navigation.astro con la clase CSS para controlar tus enlaces de navegación. Envuelve los enlaces de navegación existentes en un <div> con la clase nav-links y el atributo id establecido en main-menu.

    src/components/Navigation.astro
    ---
    ---
    <div id="main-menu" class="nav-links">
    <a href="/">Home</a>
    <a href="/about/">About</a>
    <a href="/blog/">Blog</a>
    </div>
  2. Copia los estilos CSS de abajo en global.css. Estos estilos:

    • Estiliza y posiciona los enlaces de navegación para móvil
    • Usan una query @media para definir diferentes estilos para tamaños de pantalla más grandes
    src/styles/global.css
    html {
    background-color: #f1f5f9;
    font-family: sans-serif;
    }
    body {
    margin: 0 auto;
    width: 100%;
    max-width: 80ch;
    padding: 1rem;
    line-height: 1.5;
    }
    * {
    box-sizing: border-box;
    }
    h1 {
    margin: 1rem 0;
    font-size: 2.5rem;
    }
    /* nav styles */
    .nav-links {
    width: 100%;
    display: none;
    margin: 0;
    }
    .nav-links a {
    display: block;
    text-align: center;
    padding: 10px 0;
    text-decoration: none;
    font-size: 1.2rem;
    font-weight: bold;
    text-transform: uppercase;
    color: #0d0950;
    }
    .nav-links a:hover,
    .nav-links a:focus {
    background-color: #ff9776;
    }
    @media screen and (min-width: 636px) {
    .nav-links {
    margin-left: 5em;
    display: block;
    position: static;
    width: auto;
    background: none;
    }
    .nav-links a {
    display: inline-block;
    padding: 15px 20px;
    }
    }

Redimensiona tu ventana y busca diferentes estilos siendo aplicados en diferentes anchos de pantalla. Tu header ahora es responsive al tamaño de pantalla a través del uso de queries @media.

Contribuir Comunidad Patrocinar