jerarquía usando un container
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
¡Sí! Aquí te muestro la jerarquía usando un container:
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Card con Container</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { background: #f0f0f0; font-family: Arial, sans-serif; min-height: 100vh; } /* CONTAINER: centra todo lo que tenga dentro */ .container { display: flex; justify-content: center; align-items: center; min-height: 100vh; padding: 20px; } /* CARD: estructura interna */ .card { width: 300px; background: white; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); border: 2px solid red; } .card-header { height: 40px; background: #f8f9fa; border-bottom: 1px solid #dee2e6; border-radius: 8px 8px 0 0; border: 2px solid blue; } .card-body { min-height: 150px; padding: 15px; border: 2px solid green; } .card-footer { height: 40px; background: #f8f9fa; border-top: 1px solid #dee2e6; border-radius: 0 0 8px 8px; border: 2px solid orange; } </style> </head> <body> <!-- JERARQUÍA: body > container > card --> <div class="container"> <!-- 1. Container padre que centra --> <div class="card"> <!-- 2. Card hija centrada --> <div class="card-header"></div> <!-- 3. Nietos --> <div class="card-body"></div> <div class="card-footer"></div> </div> </div> </body> </html>
📐 Jerarquía y responsabilidades:
text
body (fondo gris, sin posicionamiento)
│
└── container (FLEX: centra todo su contenido)
│
└── card (estructura interna, NO flex)
│
├── card-header (parte superior)
├── card-body (contenido principal)
└── card-footer (parte inferior)🎯 Ventajas de esta estructura:
Body más limpio: Solo define fondo y fuente
Container reutilizable: Puedes tener múltiples containers en la página
Card independiente: La card no sabe que está centrada, solo es un bloque
Flexible para añadir más elementos:
html
<body> <div class="container"> <!-- Centra la primera card --> <div class="card">...</div> </div> <div class="container"> <!-- Centra la segunda card --> <div class="card">...</div> </div> <!-- O varias cards en un mismo container --> <div class="container" style="gap: 20px;"> <div class="card">...</div> <div class="card">...</div> <div class="card">...</div> </div> </body>
¡Así tienes una jerarquía clara y cada elemento hace una sola cosa!
Jerarquía Padre, Hijo y Nieto en tu Card
text
<body> ← ABUELO (fondo, fuente)
│ (le da estilo al fondo)
│
└── <div class="container"> ← PADRE (flex)
│ (centra a sus hijos)
│ display: flex
│ justify-content: center
│ align-items: center
│
└── <div class="card"> ← HIJO (estructura)
│ (hereda la posición del padre)
│ width: 300px
│ background: white
│
├── <div class="card-header"> ← NIETO 1
│ (parte de arriba)
│ height: 40px
│
├── <div class="card-body"> ← NIETO 2
│ (contenido principal)
│ min-height: 150px
│
└── <div class="card-footer"> ← NIETO 3
(parte de abajo)
height: 40px📊 Responsabilidades por nivel:
ABUELO (<body>)
css
body { background: #f0f0f0; /* Da el fondo a toda la página */ font-family: Arial; /* Define la fuente para todos */ min-height: 100vh; /* Ocupa todo el alto */ /* NO centra nada, solo prepara el terreno */ }
PADRE (.container)
css
.container { display: flex; /* ACTIVA FLEX - SOLO AQUÍ */ justify-content: center; /* Centra al HIJO horizontalmente */ align-items: center; /* Centra al HIJO verticalmente */ min-height: 100vh; /* Para ocupar todo el alto */ /* RESPONSABILIDAD: Centrar a sus HIJOS */ }
HIJO (.card)
css
.card { width: 300px; /* Tamaño fijo */ background: white; /* Color de fondo */ border-radius: 8px; /* Bordes redondeados */ box-shadow: 0 2px 4px rgba(0,0,0,0.1); /* Sombra */ /* RESPONSABILIDAD: Ser la estructura principal */ /* IGNORA que está centrado, solo es un bloque */ }
NIETOS (.card-header, .card-body, .card-footer)
css
.card-header { height: 40px; /* Altura fija */ background: #f8f9fa; /* Color diferente */ border-bottom: 1px solid #dee2e6; /* Separador */ /* RESPONSABILIDAD: Ser partes de la card */ /* IGNORAN todo lo demás, solo son secciones */ }
🔄 Flujo de la herencia:
text
PROPIEDADES QUE HEREDAN:
body (font-family: Arial)
↓
.container (hereda Arial)
↓
.card (hereda Arial)
↓
.header, .body, .footer (heredan Arial)
PROPIEDADES QUE NO HEREDAN:
.container (flex) → NO pasa a .card
.card (width) → NO pasa a los nietos🎯 Regla de oro:
El PADRE (container) solo CENTRA
El HIJO (card) solo SE ESTRUCTURA
Los NIETOS solo SON PARTES
¡Así cada quien hace su trabajo y el código es más fácil de mantener!
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
Publicar un comentario