Creamos una pagina web personal juntos

Creamos una pagina web personal juntos

Spread the love

Creamos una pagina web personal juntos

Hoy, Creamos una pagina web personal juntos, solo con HTML y CSS3. Es una pagina simple pero cada uno puede utilizarla y modificarla a su gusto.

Empezamos creando nuestro HTML

Aquí esta el HTML con comentarios explicativos:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Mi CV</title>
    <link rel="stylesheet" href="styles.css"> <!-- Enlace al archivo CSS externo -->
</head>
<body>
    <!-- Contenedor principal -->
    <div id="container">
        <!-- Contenedor de contenido principal -->
        <div id="content">
            <!-- Encabezado -->
            <header>
                <!-- Sección de contactos en el encabezado -->
                <div id="contacts">
                    <h1>Nombre Apellido</h1> <!-- Nombre principal -->
                    <h2>Desarrollador de Software</h2> <!-- Título profesional -->
                    <h3><a href="mailto:email@dominio.com">email@dominio.com</a></h3> <!-- Correo electrónico -->
                    <h3><a href="tel:+1234567890">+1234567890</a></h3> <!-- Número de teléfono -->
                </div>
                <!-- Contenedor de la foto del autor -->
                <div id="photo_container">
                    <img src="tu-foto.jpg" alt="Foto del autor"> <!-- Foto del autor -->
                </div>
            </header>

            <!-- Enlaces de descarga e impresión -->
            <div id="print_download_links">
                <a href="cv.pdf" download>Descargar PDF</a> <!-- Enlace de descarga -->
                <a href="javascript:window.print()">Imprimir</a> <!-- Enlace para imprimir -->
            </div>

            <!-- Contenedor principal del contenido -->
            <main>
                <!-- Columna izquierda -->
                <div id="leftcolumn">
                    <!-- Sección de experiencia laboral -->
                    <div class="section">
                        <div class="section_heading">Experiencia Laboral</div>
                        <!-- Entrada de experiencia laboral -->
                        <div class="work_entry">
                            <div class="work_title">Desarrollador Senior en Empresa XYZ</div>
                            <div class="work_date">Enero 2020 - Presente</div>
                            <p>Descripción de las responsabilidades y logros en este puesto.</p>
                        </div>
                        <!-- Añadir más entradas de experiencia laboral según sea necesario -->
                    </div>
                </div>

                <!-- Columna derecha -->
                <div id="rightcolumn">
                    <!-- Sección de educación -->
                    <div class="section">
                        <div class="section_heading">Educación</div>
                        <!-- Entrada de educación -->
                        <div class="education_entry">
                            <div class="education_title">Ingeniería en Informática</div>
                            <div class="education_date">2015 - 2019</div>
                            <p>Descripción del programa y logros relevantes.</p>
                        </div>
                        <!-- Añadir más entradas de educación según sea necesario -->
                    </div>

                    <!-- Sección de habilidades -->
                    <div class="section">
                        <div class="section_heading">Habilidades</div>
                        <!-- Contenedor de habilidades -->
                        <div class="skills">
                            <div class="misc_left">
                                <div class="misc_title">Habilidades Técnicas</div>
                                <ul>
                                    <li>Programación en Java</li>
                                    <li>Desarrollo Web con React</li>
                                    <!-- Añadir más habilidades técnicas según sea necesario -->
                                </ul>
                            </div>
                            <div class="misc_right">
                                <div class="misc_title">Habilidades Blandas</div>
                                <ul>
                                    <li>Comunicación Efectiva</li>
                                    <li>Trabajo en Equipo</li>
                                    <!-- Añadir más habilidades blandas según sea necesario -->
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </main>
        </div>
    </div>
</body>
</html>

Explicación de las secciones:

Metadatos y enlace al CSS: Define la codificación de caracteres, la configuración de vista y el título del documento. También enlaza al archivo CSS externo.

Contenedor principal: Contiene todo el contenido de la página para centrarlo y aplicar estilos generales.

Encabezado: Contiene la información principal del contacto, como el nombre, título profesional, correo electrónico y número de teléfono. También incluye la foto del autor.

Enlaces de descarga e impresión: Proporciona enlaces para descargar el CV en formato PDF y para imprimir la página.

Contenedor principal del contenido: Utiliza main para el contenido principal, dividido en dos columnas (leftcolumn y rightcolumn).

Columna izquierda: Incluye la sección de experiencia laboral con entradas que detallan cada puesto de trabajo.

Columna derecha: Incluye la sección de educación y habilidades, con subdivisiones para habilidades técnicas y blandas.

Paso seguido creamos el CSS

Aquí esta el CSS con comentarios explicativos:

/* Estilos generales para el cuerpo */
body {
    background-color: #f4f4f9; /* Color de fondo claro */
    margin: 0; /* Sin márgenes */
    padding: 0; /* Sin padding */
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; /* Fuente limpia y moderna */
    font-size: 14px; /* Tamaño de fuente base */
    line-height: 1.6; /* Altura de línea */
}

/* Contenedor principal */
#container {
    width: 100%; /* Ancho completo */
    display: flex; /* Uso de flexbox para la disposición */
    flex-direction: column; /* Disposición en columna */
    align-items: center; /* Alineación central */
}

/* Contenedor de contenido */
#content {
    background-color: #ffffff; /* Fondo blanco */
    width: 100%; /* Ancho completo */
    max-width: 960px; /* Ancho máximo */
    border-radius: 8px; /* Bordes redondeados */
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.1); /* Sombra sutil */
    padding-bottom: 30px; /* Padding inferior */
    margin-bottom: 40px; /* Margen inferior */
    overflow: hidden; /* Ocultar desbordamiento */
}

/* Encabezado */
header {
    background: linear-gradient(to right, #6a11cb, #2575fc); /* Degradado de fondo */
    width: 100%; /* Ancho completo */
    height: 300px; /* Altura fija */
    display: flex; /* Uso de flexbox para la disposición */
    justify-content: space-between; /* Espacio entre los elementos */
    align-items: center; /* Alineación central */
    padding: 0 32px; /* Padding lateral */
    border-radius: 8px 8px 0 0; /* Bordes redondeados en la parte superior */
    color: #ffffff; /* Texto blanco */
    box-sizing: border-box; /* Incluye padding en el tamaño total */
}

/* Estilos para los contactos */
#contacts {
    color: #ffffff; /* Texto blanco */
}

#contacts h1 {
    font-size: 48px; /* Tamaño grande para el nombre */
    margin: 0; /* Sin margen */
    line-height: 1.2; /* Altura de línea */
}

#contacts h2, #contacts h3 {
    font-size: 16px; /* Tamaño de fuente para sub-títulos */
    margin: 8px 0; /* Margen vertical */
}

/* Estilos para resaltar texto */
.highlight {
    color: #f4f4f9; /* Color de texto claro */
    background: rgba(255, 255, 255, 0.2); /* Fondo semi-transparente */
    padding: 0 5px; /* Padding interno */
    border-radius: 4px; /* Bordes redondeados */
}

/* Contenedor de la foto */
#photo_container {
    display: flex; /* Uso de flexbox para centrar */
    align-items: center; /* Alineación vertical */
    justify-content: center; /* Alineación horizontal */
}

#photo_container img {
    border-radius: 50%; /* Imagen circular */
    border: 5px solid #ffffff; /* Borde blanco */
    width: 150px; /* Ancho fijo */
    height: 150px; /* Altura fija */
    object-fit: cover; /* Cubrir sin distorsionar */
}

/* Enlaces de descarga e impresión */
#print_download_links {
    text-align: right; /* Alineación a la derecha */
    padding: 20px 32px 5px; /* Padding interno */
    color: #333; /* Color de texto oscuro */
    width: 100%; /* Ancho completo */
    max-width: 960px; /* Ancho máximo */
    font-size: 12px; /* Tamaño de fuente pequeño */
    box-sizing: border-box; /* Incluye padding en el tamaño total */
}

#print_download_links a {
    color: #6a11cb; /* Color de enlace */
    text-decoration: none; /* Sin subrayado */
    margin-left: 10px; /* Margen izquierdo */
}

/* Disposición del contenido principal */
#content main {
    display: flex; /* Uso de flexbox para la disposición */
    flex-wrap: wrap; /* Permitir que los elementos envuelvan */
    justify-content: space-between; /* Espacio entre los elementos */
    padding: 0 32px; /* Padding lateral */
    box-sizing: border-box; /* Incluye padding en el tamaño total */
}

/* Columnas izquierda y derecha */
#leftcolumn, #rightcolumn {
    width: 100%; /* Ancho completo */
    max-width: 48%; /* Ancho máximo de casi la mitad */
    box-sizing: border-box; /* Incluye padding en el tamaño total */
}

/* Secciones */
.section {
    margin-top: 36px; /* Margen superior */
}

.section_heading {
    background: #6a11cb; /* Fondo del encabezado de sección */
    padding: 10px 15px; /* Padding interno */
    font-size: 20px; /* Tamaño de fuente */
    color: #ffffff; /* Texto blanco */
    border-radius: 4px; /* Bordes redondeados */
    margin-bottom: 10px; /* Margen inferior */
}

/* Entradas de trabajo y educación */
.work_entry, .education_entry, .skills {
    margin-top: 20px; /* Margen superior */
}

.work_title, .education_title {
    font-size: 18px; /* Tamaño de fuente */
    color: #2575fc; /* Color del texto */
}

.work_date {
    font-size: 14px; /* Tamaño de fuente */
    color: #888888; /* Color gris */
}

/* Habilidades */
.skills {
    display: flex; /* Uso de flexbox para la disposición */
    justify-content: space-between; /* Espacio entre los elementos */
    flex-wrap: wrap; /* Permitir que los elementos envuelvan */
}

.skills .misc_title {
    font-size: 16px; /* Tamaño de fuente */
    font-weight: bold; /* Texto en negrita */
    width: 100%; /* Ancho completo */
    margin-bottom: 10px; /* Margen inferior */
}

.skills .misc_left, .skills .misc_right {
    width: 48%; /* Ancho de casi la mitad */
}

ul {
    list-style-type: none; /* Sin estilo de lista */
    padding: 0; /* Sin padding */
}

ul li {
    background: #f4f4f9; /* Fondo claro */
    margin-bottom: 5px; /* Margen inferior */
    padding: 8px; /* Padding interno */
    border-radius: 4px; /* Bordes redondeados */
}

/* Estilos para dispositivos móviles */
@media (max-width: 768px) {
    header {
        flex-direction: column; /* Disposición en columna */
        height: auto; /* Altura automática */
        padding: 20px; /* Padding interno */
        text-align: center; /* Alineación centrada */
    }
    
    #photo_container {
        margin-top: 20px; /* Margen superior */
    }
    
    #contacts {
        text-align: center; /* Alineación centrada */
    }

    #content main {
        flex-direction: column; /* Disposición en columna */
        padding: 0 20px; /* Padding lateral */
    }

    #leftcolumn, #rightcolumn {
        max-width: 100%; /* Ancho completo */
    }

    #print_download_links {
        padding: 10px 20px; /* Padding interno */
        text-align: center; /* Alineación centrada */
    }

    .section_heading {
        text-align: center; /* Alineación centrada */
    }

    .skills .misc_left, .skills .misc_right {
        width: 100%; /* Ancho completo */
    }
}

Explicación de las secciones:

Estilos generales del cuerpo: Define el fondo, margenes, padding, tipo y tamaño de fuente, y altura de línea para el cuerpo del documento.

Contenedor principal: Define las propiedades del contenedor principal que organiza el contenido.

Contenedor de contenido: Define el estilo del contenido principal, incluyendo el fondo blanco, sombras, bordes redondeados, etc.

Encabezado: Define el estilo del encabezado, incluyendo el fondo degradado, disposición con flexbox, y estilos de texto.

Estilos para los contactos: Define los estilos específicos para la sección de contactos dentro del encabezado.

Estilos para resaltar texto: Define cómo se destacan ciertas partes del texto con un fondo y bordes redondeados.

Contenedor de la foto: Define cómo se muestra la foto del autor, centrando y redondeando la imagen.

Enlaces de descarga e impresión: Define los estilos para los enlaces de descarga e impresión, incluyendo su alineación y color.

Disposición del contenido principal: Define la disposición del contenido principal usando flexbox, asegurando que las columnas se distribuyan correctamente.

Columnas izquierda y derecha: Define los estilos para las columnas izquierda y derecha.

Secciones: Define el estilo de las secciones dentro del contenido.

Entradas de trabajo y educación: Define el estilo para las entradas de experiencia laboral y educación.

Habilidades: Define cómo se muestran las habilidades, incluyendo su disposición y estilo de lista.

Estilos para dispositivos móviles: Media queries para asegurar que el diseño sea responsivo en dispositivos móviles, ajustando la disposición de columnas, encabezado y otros elementos para pantallas más pequeñas.

Estructura de Archivos y Carpetas

Para tener una estructura clara y organizada en el directorio www de tu sitio web personal, puedes seguir esta organización de carpetas y archivos:

www/
├── css/
│   └── styles.css
├── images/
│   └── tu-foto.jpg
├── js/
│   └── main.js (si necesitas JavaScript)
├── pdf/
│   └── cv.pdf
└── index.html

Carpeta raíz (www)

  • Contendrá el archivo principal HTML (index.html).
  • Contendrá un archivo para la hoja de estilos (styles.css).
  • Tendrá subdirectorios para imágenes, fuentes y scripts.

Subdirectorios

  • images/ para las imágenes.
  • css/ para las hojas de estilo.
  • js/ para los archivos JavaScript, si los necesitas.
  • pdf/ para el archivo PDF del CV, si decides tenerlo en una carpeta separada.

El resultado de nuestro arduo trabajo:

Creamos una pagina web personal juntos
Creamos una pagina web personal juntos

Se puede ver en todo su esplendor en: https://veselin.es/web/

1 comentario en “Creamos una pagina web personal juntos”

  1. Pingback: Flexbox vs. Grid: ¿Cuál es la mejor opción para tu diseño web?

Deja un comentario