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”-
Crea un nuevo componente Header. Importa y usa tu componente
Navigation.astroexistente dentro de un elemento<nav>que está dentro de un elemento<header>.¡Muéstrame el código!
Crea un archivo llamado
Header.astroensrc/components/src/components/Header.astro ---import Navigation from './Navigation.astro';---<header><nav><Navigation /></nav></header>
Pruébalo tú mismo - Actualiza tus páginas
Sección titulada “Pruébalo tú mismo - Actualiza tus páginas”-
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> -
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.
Añade estilos responsive
Sección titulada “Añade estilos responsive”-
Actualiza
Navigation.astrocon la clase CSS para controlar tus enlaces de navegación. Envuelve los enlaces de navegación existentes en un<div>con la clasenav-linksy el atributo id establecido enmain-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> -
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
@mediapara definir diferentes estilos para tamaños de pantalla más grandes
¡Empieza definiendo qué debería pasar en tamaños de pantalla pequeños primero! Los tamaños de pantalla más pequeños requieren layouts más simples. Luego, ajusta tus estilos para acomodar dispositivos más grandes. Si diseñas el caso complicado primero, entonces tienes que trabajar para intentar hacerlo simple de nuevo.
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.
Checklist
Sección titulada “Checklist”Recursos
Sección titulada “Recursos”Diseño basado en Componentes externo
Etiquetas HTML Semánticas externo
Diseño Mobile-first externo