Explicación detallada de la Card y el Grid

 


Vamos a desglosar cada parte del código para entender cómo funciona:

1. LA CARD (fondo blanco, bordes redondeados, sombra)

css
.card {
    background: white;           /* Fondo blanco */
    border-radius: 10px;         /* Bordes redondeados */
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);  /* Sombra */
    width: 450px;
    padding: 25px;
}

Desglose:

PropiedadValor¿Qué hace?
backgroundwhitePinta el fondo de blanco
border-radius10pxRedondea las esquinas (a mayor número, más redondeadas)
box-shadow0 4px 12px rgba(0,0,0,0.15)Crea una sombra detrás

La sombra explicada:

css
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
/*           ↑  ↑    ↑     ↑
            (1) (2)  (3)   (4)   */

(1) Desplazamiento horizontal: 0px (centrada)
(2) Desplazamiento vertical: 4px (sombra abajo)
(3) Difuminado: 12px (qué tan borrosa)
(4) Color: rgba(0,0,0,0.15) (negro con 15% opacidad)

Visual de la card:

text
┌─────────────────────┐  ← borde redondeado
│                     │
│   CONTENIDO AQUÍ    │  ← fondo blanco
│                     │
└─────────────────────┘
     ║  ← sombra (box-shadow)
     ║

2. EL GRID (una columna + separación)

css
.card {
    display: grid;                 /* Activa Grid */
    grid-template-columns: 1fr;    /* Una sola columna */
    gap: 20px;                     /* Separación entre elementos */
}

Desglose:

PropiedadValor¿Qué hace?
displaygridConvierte el elemento en contenedor grid
grid-template-columns1frCrea UNA columna que ocupa todo el espacio (1fr = 1 fracción)
gap20pxEspacio de 20px entre cada fila

Visual del Grid:

text
┌─────────────────────┐
│  TÍTULO (h2)        │ ← Fila 1
│                     │
│  gap: 20px          │ ← Espacio de 20px
│                     │
│  TABLA              │ ← Fila 2
└─────────────────────┘

¿Qué significa 1fr?

  • fr = fracción del espacio disponible

  • 1fr = "una fracción" → ocupa TODO el ancho

  • Podría ser: grid-template-columns: 200px 1fr 100px (tres columnas)


EL CÓDIGO COMPLETO SOLO CON LO ESENCIAL:

html
<!DOCTYPE html>
<html>
<head>
    <style>
        body {
            background: #ddd;
            display: flex;
            justify-content: center;
            padding: 30px;
        }

        /* LA CARD (fondo blanco, bordes redondos, sombra) */
        .card {
            background: white;           /* 1. Fondo blanco */
            border-radius: 10px;         /* 2. Bordes redondeados */
            box-shadow: 0 4px 12px gray; /* 3. Sombra */
            width: 400px;
            padding: 25px;
            
            /* GRID (una columna con separación) */
            display: grid;               /* 4. Activar Grid */
            grid-template-columns: 1fr;  /* 5. Una columna */
            gap: 20px;                   /* 6. Separación */
        }

        h2 {
            margin: 0;
            text-align: center;
        }

        table {
            width: 100%;
            border-collapse: collapse;
        }

        th, td {
            border: 1px solid black;
            padding: 8px;
        }
    </style>
</head>
<body>
    <div class="card">  <!-- TODO DENTRO DE LA CARD -->
        <h2>Mi Título</h2>
        
        <table>
            <tr><th>A</th><th>B</th></tr>
            <tr><td>1</td><td>2</td></tr>
        </table>
    </div>
</body>
</html>

REGLA DE ORO:

  • La card es el contenedor visual (fondo, bordes, sombra)

  • El grid es cómo se organiza lo de adentro (columnas y espacios)

¿Queda claro o quieres que profundice en alguna parte?

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