← HTML/CSS EspañolChapter 07 of 13

Modelo de Caja y Diseño

## Objetivos de Aprendizaje - Entender el modelo de caja CSS - Dominar las propiedades de margin, padding y border - Controlar el box-sizing - Trabajar con propiedades de display ## El Modelo de Caja Cada elemento HTML es una caja con cuatro partes: 1. Content - el área de contenido real 2. Padding - espacio dentro del borde 3. Border - el borde del elemento 4. Margin - espacio fuera del borde ```text ┌─────────────────────────────────────┐ │ MARGIN │ │ ┌───────────────────────────────┐ │ │ │ BORDER │ │ │ │ ┌───────────────────────────┐ │ │ │ │ │ PADDING │ │ │ │ │ │ ┌───────────────────────┐ │ │ │ │ │ │ │ CONTENT │ │ │ │ │ │ │ └───────────────────────┘ │ │ │ │ │ └───────────────────────────┘ │ │ │ └───────────────────────────────┘ │ └─────────────────────────────────────┘ ``` ## Content ```css .box { width: 300px; height: 200px; } ``` ## Padding ```css .box { /* Todos los lados */ padding: 20px; /* Arriba/abajo, izquierda/derecha */ padding: 10px 20px; /* Arriba, derecha, abajo, izquierda */ padding: 10px 15px 20px 25px; /* Lados individuales */ padding-top: 10px; padding-right: 15px; padding-bottom: 20px; padding-left: 25px; } ``` ## Border ### Ancho de Borde ```css .box { border-width: 2px; border-width: thin medium thick 10px; } ``` ### Estilo de Borde ```css .box { border-style: solid; border-style: dashed; border-style: dotted; border-style: double; border-style: groove; border-style: ridge; border-style: inset; border-style: outset; } ``` ### Color de Borde ```css .box { border-color: red; border-color: #ff0000; border-color: rgb(255, 0, 0); } ``` ### Abreviación de Borde ```css .box { border: 2px solid #333; border: 1px dashed red; } ``` ### Bordes Individuales ```css .box { border-top: 2px solid black; border-bottom: 1px dashed gray; } ``` ### Border Radius ```css .box { border-radius: 5px; border-radius: 10px 5px; border-radius: 50%; border-radius: 50px 10px 20px 5px; } ``` ## Margin ```css .box { /* Todos los lados */ margin: 20px; /* Arriba/abajo, izquierda/derecha */ margin: 10px auto; /* Lados individuales */ margin-top: 10px; margin-right: 15px; margin-bottom: 20px; margin-left: 25px; } ``` ### Centrar con Auto ```css .container { width: 80%; margin: 0 auto; } ``` ### Colapso de Margen Los márgenes verticales entre elementos adyacentes colapsan: ```css .paragraph1 { margin-bottom: 20px; } .paragraph2 { margin-top: 30px; } /* El espacio real entre ellos es 30px, no 50px */ ``` ## Box Sizing ### Content Box (Por Defecto) ```css .box { width: 200px; padding: 20px; border: 2px solid black; /* Ancho total: 200 + 40 + 4 = 244px */ box-sizing: content-box; } ``` ### Border Box (Recomendado) ```css .box { width: 200px; padding: 20px; border: 2px solid black; /* Ancho total: 200px (padding y border incluidos) */ box-sizing: border-box; } ``` ### Border Box Global ```css *, *::before, *::after { box-sizing: border-box; } ``` ## Propiedad Display ### Elementos de Bloque ```css div, p, h1, ul, li { display: block; } .block { display: block; width: 100%; /* Por defecto para bloque */ /* Toma el ancho completo, comienza en nueva línea */ } ``` ### Elementos en Línea ```css span, a, strong { display: inline; } ``` ### Inline-Block ```css .button { display: inline-block; width: 200px; /* El ancho funciona en inline-block */ padding: 10px; /* Fluye con el texto pero acepta propiedades del modelo de caja */ } ``` ### None ```css .hidden { display: none; /* El elemento se elimina del diseño */ } .invisible { visibility: hidden; /* El elemento está oculto pero el espacio se preserva */ } ``` ### Display Contents ```css .parent { display: contents; /* El padre se vuelve transparente, los hijos renderizan directamente */ } ``` ## Visibilidad ```css .visible { visibility: visible; /* Por defecto */ } .hidden { visibility: hidden; /* Oculto pero espacio preservado */ } .collapsed { visibility: collapse; /* Para filas de tabla, colapsa el espacio */ } ``` ## Overflow ```css .box { overflow: visible; /* Por defecto, el contenido se sale */ overflow: hidden; /* Oculta el contenido que se desborda */ overflow: scroll; /* Siempre muestra barras de desplazamiento */ overflow: auto; /* Muestra barras solo cuando es necesario */ } ``` ### Overflow-x y Overflow-y ```css .box { overflow-x: auto; /* Desplazamiento horizontal si es necesario */ overflow-y: hidden; /* Ocultar desbordamiento vertical */ } ``` ## Width y Height ### Min y Max ```css .container { width: 80%; min-width: 300px; max-width: 1200px; } .image { max-width: 100%; height: auto; } ``` ### Fit Content ```css .box { width: fit-content; margin: 0 auto; } ``` ## Ejemplo Práctico ```css .card { width: 300px; padding: 20px; border: 1px solid #ddd; border-radius: 8px; margin: 20px auto; box-sizing: border-box; } .card-title { font-size: 1.5em; margin-bottom: 10px; } .card-body { color: #666; line-height: 1.6; } ``` ## Resumen - Modelo de caja: content, padding, border, margin (de afuera hacia adentro) - `box-sizing: border-box` hace el dimensionamiento más intuitivo - `margin: 0 auto` centra elementos de bloque - Los márgenes verticales colapsan entre elementos adyacentes - `display: block` toma el ancho completo; `inline` fluye con el texto; `inline-block` hace ambas cosas - `display: none` elimina del diseño; `visibility: hidden` oculta pero preserva el espacio - `overflow` controla cómo se maneja el contenido que excede su contenedor

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →