layout-card

 .container {

    display: flex;
    justify-content: center;
    min-height: 100vh;
    border: 3px solid green;
    padding-top: 50px;  /* Ajusta este valor para bajar la card */
}

CSS completamente documentado, explicando cada propiedad:

html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Card como imagen</title>
</head>
<style>
    /* RESETEO DE ESTILOS POR DEFECTO DEL NAVEGADOR */
    /* Elimina todos los márgenes y paddings que los navegadores añaden por defecto */
    * {
        margin: 0;
        padding: 0;
        /* box-sizing: border-box;  /* Opcional: hace que padding no aumente el tamaño */
    }

    /* ESTILOS DEL BODY */
    /* Fondo gris claro y fuente principal para toda la página */
    body {
        background-color: #f0f0f0;    /* Color de fondo gris suave */
        font-family: Arial, sans-serif; /* Fuente principal y alternativa */
    }

    /* CONTENEDOR PRINCIPAL - Centra la card en la pantalla */
    .container {
        display: flex;                 /* Activa Flexbox */
        justify-content: center;       /* Centra horizontalmente */
        align-items: center;           /* Centra verticalmente */
        min-height: 100vh;             /* Altura mínima = 100% del viewport */
    }

    /* ESTILOS DE LA CARD (TARJETA) */
    .card {
        display: flex;                 /* Activa Flexbox para sus hijos */
        flex-direction: column;        /* Apila hijos verticalmente */
        width: 500px;                  /* Ancho fijo de 500 píxeles */
        border-radius: 8px;            /* Bordes redondeados de 8px */
        background-color: white;        /* Fondo blanco */
        box-shadow: 0 2px 5px rgba(0,0,0,0.1);  /* Sombra suave: 
            - 0: desplazamiento horizontal
            - 2px: desplazamiento vertical
            - 5px: difuminado
            - rgba(0,0,0,0.1): color negro con 10% opacidad */
    }

    /* ENCABEZADO DE LA CARD (parte superior) */
    .card-header {
        height: 50px;                   /* Altura fija de 50px */
        background: #f8f9fa;            /* Fondo gris muy claro */
        border-radius: 8px 8px 0 0;      /* Bordes redondeados:
            - 8px: superior izquierdo
            - 8px: superior derecho
            - 0: inferior derecho
            - 0: inferior izquierdo */
        padding: 0 20px;                 /* Padding: 0 arriba/abajo, 20px izquierda/derecha */
        display: flex;                   /* Activa Flexbox para centrar el texto */
        align-items: center;              /* Centra el texto verticalmente */
        font-weight: bold;                /* Texto en negrita */
        color: #495057;                   /* Color gris oscuro para el texto */
        border-bottom: 1px solid #dee2e6; /* Borde inferior:
            - 1px: grosor
            - solid: línea sólida
            - #dee2e6: color gris claro */
    }

    /* CUERPO DE LA CARD (contenido principal) */
    .card-body {
        padding: 30px 20px;              /* Padding: 30px arriba/abajo, 20px izquierda/derecha */
        background: white;                /* Fondo blanco */
    }

    /* ESTILOS PARA EL TÍTULO (h2) DENTRO DEL CUERPO */
    .card-body h2 {
        margin-bottom: 15px;              /* Espacio debajo del título */
        font-size: 24px;                  /* Tamaño de fuente 24px */
        color: #212529;                    /* Color gris muy oscuro (casi negro) */
    }

    /* ESTILOS PARA EL PÁRRAFO (p) DENTRO DEL CUERPO */
    .card-body p {
        margin-bottom: 20px;              /* Espacio debajo del párrafo */
        color: #6c757d;                    /* Color gris medio */
        line-height: 1.5;                  /* Altura de línea 1.5 (interlineado) */
    }

    /* ESTILOS PARA EL TEXTO PEQUEÑO (small) DENTRO DEL CUERPO */
    .card-body small {
        display: block;                    /* Hace que ocupe toda la línea (como un div) */
        margin-bottom: 25px;               /* Espacio debajo del texto pequeño */
        color: #adb5bd;                     /* Color gris claro */
    }

    /* ESTILOS PARA EL BOTÓN */
    .card-body button {
        background: #0d6efd;               /* Color azul primario */
        color: white;                       /* Texto blanco */
        border: none;                       /* Sin borde */
        padding: 10px 20px;                 /* Padding: 10px arriba/abajo, 20px izquierda/derecha */
        border-radius: 6px;                 /* Bordes redondeados de 6px */
        font-size: 16px;                     /* Tamaño de fuente 16px */
        cursor: pointer;                     /* Cambia el cursor a manita al pasar */
    }

    /* ESTILOS PARA EL BOTÓN CUANDO EL RATÓN PASA POR ENCIMA (hover) */
    .card-body button:hover {
        background: #0b5ed7;                /* Azul un poco más oscuro */
    }
</style>
<body>
    <div class="container">
        <div class="card">
            <div class="card-header">
                Featured
            </div>
            <div class="card-body">
                <h2>Special title treatment</h2>
                <p>With supporting text below as a natural lead-in to additional content.</p>
                <small>Last updated 3 mins ago</small>
                <button>Go somewhere</button>
            </div>
        </div>
    </div>
</body>
</html>

Explicación de conceptos clave:

Flexbox:

  • display: flex activa el modelo Flexbox

  • justify-content: center centra horizontalmente

  • align-items: center centra verticalmente

  • flex-direction: column apila elementos verticalmente

Box Model:

  • padding: espacio INTERNO entre el contenido y el borde

  • margin: espacio EXTERNO entre elementos

  • border: línea alrededor del elemento

Colores:
Usamos una escala de grises profesional:

  • #212529 (casi negro) para títulos

  • #495057 (gris oscuro) para headers

  • #6c757d (gris medio) para texto normal

  • #adb5bd (gris claro) para texto secundario

  • #f8f9fa (gris muy claro) para fondos

¿Te gustaría que explique alguna parte específica con más detalle?

Comentarios

Entradas más populares de este blog

Tutorial de CSS: De Cero a Estilizar tu Primera Página Web

layouts

Proyecto Práctico: Tarjeta de Perfil