Desarrollo Completo de una Página Web de Agencia de Viajes con HTML y CSS

En este artículo, vamos a resolver el ejercicio propuesto para crear una página web de una agencia de viajes ficticia. Usaremos HTML para estructurar el contenido y CSS para dar estilo a la página, asegurándonos de que sea accesible y responsiva, adaptándose a diferentes dispositivos.

Paso 1: Estructura HTML

Comenzamos definiendo la estructura HTML de nuestra página. Crearemos varias secciones, como la cabecera, la bienvenida, los destinos, las ofertas especiales y el formulario de contacto. Usaremos etiquetas semánticas para hacer que el código sea claro y fácil de entender.

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="description" content="Agencia de viajes con las mejores ofertas">
    <meta name="keywords" content="viajes, destinos, ofertas de viaje, agencia de viajes">
    <meta name="author" content="Nombre del Estudiante">
    <title>Agencia de Viajes</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <!-- Cabecera y Navegación -->
    <header>
        <h1>Agencia de Viajes Wanderlust</h1>
        <nav>
            <ul>
                <li><a href="#inicio">Inicio</a></li>
                <li><a href="#destinos">Destinos</a></li>
                <li><a href="#ofertas">Ofertas</a></li>
                <li><a href="#contacto">Contacto</a></li>
            </ul>
        </nav>
    </header>

    <!-- Sección de Bienvenida -->
    <section id="inicio">
        <h2>Bienvenidos a Wanderlust</h2>
        <p>Explora el mundo con nosotros y descubre destinos increíbles a precios inigualables. Tu aventura comienza aquí.</p>
    </section>

    <!-- Sección de Destinos -->
    <section id="destinos">
        <h2>Destinos Populares</h2>
        <div class="destino">
            <img src="paris.jpg" alt="Torre Eiffel en París">
            <h3>París</h3>
            <p>Descubre la ciudad del amor, su historia y su arte.</p>
        </div>
        <div class="destino">
            <img src="tokio.jpg" alt="Paisaje urbano de Tokio">
            <h3>Tokio</h3>
            <p>Vive la experiencia de la cultura japonesa en una ciudad vibrante.</p>
        </div>
        <div class="destino">
            <img src="newyork.jpg" alt="Vista del skyline de Nueva York">
            <h3>Nueva York</h3>
            <p>Explora la ciudad que nunca duerme y sus famosos monumentos.</p>
        </div>
    </section>

    <!-- Sección de Ofertas -->
    <section id="ofertas">
        <h2>Ofertas Especiales</h2>
        <div class="oferta">
            <h3>París desde 499€</h3>
            <p>Incluye vuelo y hotel. ¡Reserva ahora!</p>
            <button>Reservar</button>
        </div>
        <div class="oferta">
            <h3>Tokio desde 899€</h3>
            <p>Vuelos de ida y vuelta. ¡No te lo pierdas!</p>
            <button>Reservar</button>
        </div>
    </section>

    <!-- Formulario de Contacto -->
    <section id="contacto">
        <h2>Contacto</h2>
        <form>
            <label for="nombre">Nombre:</label>
            <input type="text" id="nombre" required>

            <label for="email">Correo Electrónico:</label>
            <input type="email" id="email" required>

            <label for="mensaje">Mensaje:</label>
            <textarea id="mensaje"></textarea>

            <button type="submit">Enviar</button>
        </form>
    </section>
</body>
</html>

Paso 2: Diseño CSS

Con la estructura HTML completa, ahora pasamos al CSS para estilizar la página y asegurarnos de que se vea moderna y profesional.

Definir Variables y Estilos Básicos

Primero, definimos variables CSS para colores y fuentes, lo que facilita realizar cambios en el diseño.

:root {
    --color-primario: #2ecc71;
    --color-secundario: #3498db;
    --color-fondo: #f5f5f5;
    --color-texto: #333;
    --fuente-principal: 'Roboto', sans-serif;
}

body {
    font-family: var(--fuente-principal);
    color: var(--color-texto);
    background-color: var(--color-fondo);
    margin: 0;
    padding: 0;
}

h1, h2, h3 {
    color: var(--color-primario);
}

Estilos para la Cabecera y Navegación

header {
    background-color: var(--color-secundario);
    color: white;
    padding: 1em;
    text-align: center;
}

nav ul {
    list-style-type: none;
    padding: 0;
}

nav ul li {
    display: inline;
    margin: 0 15px;
}

nav ul li a {
    color: white;
    text-decoration: none;
}

nav ul li a:hover {
    text-decoration: underline;
}

Diseño de Secciones con Flexbox y Grid

Usamos Flexbox para organizar las secciones y Grid para la galería de destinos.

section {
    padding: 2em;
    text-align: center;
}

.destino {
    display: inline-block;
    margin: 1em;
    width: 30
    text-align: center;
}

.destino img {
    width: 100
    height: auto;
    border-radius: 10px;
}

.oferta {
    background-color: var(--color-primario);
    color: white;
    padding: 1em;
    margin: 1em;
    border-radius: 5px;
}

button {
    background-color: var(--color-secundario);
    color: white;
    border: none;
    padding: 0.5em 1em;
    border-radius: 5px;
    cursor: pointer;
}

button:hover {
    background-color: #1abc9c;
}

Diseño Responsivo con Media Queries

Finalmente, añadimos @media queries para que el sitio se adapte a dispositivos móviles.

@media (max-width: 768px) {
    .destino {
        width: 100
    }

    nav ul {
        display: block;
    }

    nav ul li {
        display: block;
        margin: 10px 0;
    }
}

Resultado Final

Al combinar el HTML y el CSS, hemos creado una página web para una agencia de viajes ficticia que es accesible, visualmente atractiva y fácil de navegar. Esta estructura y estilo pueden adaptarse para otros proyectos similares, proporcionando una base sólida en HTML y CSS.

gray and black laptop computer
Photo by Pixabay on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde Tomás González: Formador y Desarrollador Web

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad