Modelo de caja en css (Box model)

Temario modelo de caja

  1. ¿Que es el modelo de caja?
  2. Propiedades width & height
  3. Propiedad border
  4. Propiedades Margin & Padding
  5. Diferencia entre elementos de línea Vs elementos de bloque
  6. Propiedad display (Visualización)
  7. Propiedad visibility (Visibilidad)
  8. Propiedad overflow
  9. Tamaño de las cajas (Box-sizing)
  10. Propiedades float & clear
  11. Colapso de margenes verticales
  12. Adición de márgenes horizontales
  13. Centrado de Cajas
◀️ Volver a pagina principal

¿Que es el modelo de caja?

El modelo de caja es la forma como css ve las etiquetas HTML, se llama modelo de caja (o box model) porque para css cada uno de los elementos o etiquetas de HTML son un caja y pueden ser cajas de línea o cajas de bloque.

Cada caja tiene las siguientes propiedades, es decir esta compuesta interiormente por:

  1. El contenido (Caja de contenido o content box): Que es el texto del elemento HTML, tomando en cuenta sus dimensiones (width & height).
  2. El relleno (padding): Que es la distancia interna que hay del contenido (Content box) al borde (border).
  3. El borde (border): Que es lo que delimita cada uno de los elementos HTML.
  4. El margen (margin): Son las distancias externas que hay entre un elemento HTML y otro, o su contenedor, sean hermanos o padres.

Dentro del modelo de caja hay que considerar que una caja tendra 4 lados (que van en el sentido de las manesillas del reloj):

  1. Arriba (top).
  2. Derecha (right).
  3. Abajo (bottom).
  4. izquierda (Left).

Enlaces a documentacion e imagenes acerca del Modelo de caja (Box model):

◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Propiedades width & height

Las propiedades width & heigh nos van a permitir definir la anchura (width) y la altura (height) de los elementos HTML, ejemplo:

Esto es un ejemplo de las propiedades width & heigh

◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Propiedad border

El border (borde) es lo que va a delimitar a cada uno de los elementos HTML y tiene tres propiedades:

Esto es un ejemplo de las propiedades width & heigh

En el siguiente enclace se pueden ver todas la propiedades css: cssreference

◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Propiedades Margin & Padding

Lorem ipsum dolor sit amet consectetur adipisicing elit. Beatae at ut earum explicabo! Labore id sit magnam itaque nulla delectus, officia quas eligendi? Amet ratione ullam magni, dolores perferendis quod?
Lorem ipsum dolor sit amet consectetur adipisicing elit. Reprehenderit id ad deserunt, dolor ex eum deleniti vero sint quibusdam, minus, totam eveniet aut. Voluptates hic blanditiis commodi debitis dignissimos quos?
◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Diferencia entre elementos de línea Vs elementos de bloque

Elementos o cajas de línea:

Elementos o cajas de bloque:

Ejemplos:


Esto es una caja de línea Esto es una span
Esto es una caja de bloque

Enlace a documentacion sobre elementos de línea y elementos de bloque: MDN (Motzilla Developed Network).

◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Propiedad display (Visualización)

La propiedad display es la propiedad que nos va a permitir mostrar nuestras cajas, es la propiedad que le dice al navegador como debe comportarse un elemento HTML a CSS, es decir como se va a visualizar en el navegador

La propiedad display tiene los siguientes valores:

Ejemplos:

Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis facere nam minus? Quidem maxime dolores harum rerum ea, officia qui vel fuga doloremque ab voluptates porro deserunt adipisci! Nemo, minus.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam quia cum iusto ratione obcaecati consectetur provident non eveniet, magnam dolorum porro quisquam vitae nulla voluptate sequi fuga asperiores iure voluptas!
  1. item 1
  2. item 2
  3. item 3
  4. item 4
Celda 1 Celda 2 Celda 3
Celda 4 Celda 5 Celda 6
Celda 7 Celda 8 Celda 9
◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Propiedad visibility (Visivilidad)

Oculta el elemento pero conserva el espacio que este ocupa, es como poner en opacidad cero al elemento, y tiene dos valores:

Ejemplos:

Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis facere nam minus? Quidem maxime dolores harum rerum ea, officia qui vel fuga doloremque ab voluptates porro deserunt adipisci! Nemo, minus.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis facere nam minus? Quidem maxime dolores harum rerum ea, officia qui vel fuga doloremque ab voluptates porro deserunt adipisci! Nemo, minus.

◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Propiedad overflow

Esta propiedad nos permite decir que va a pasar con el contenido que desborde su caja contenedora, la utilizamos cuando no sepamos si el contenido que va a tener una caja la desborda, esto para evitar que el texto no se vea o se monte sobre otro elemento..

Enlace a documentacion sobre la propiedad overflow: Cssreference

Ejemplos:

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Quam ea, esse unde magnam incidunt cumque iure, error tempore perspiciatis facere fugit, nobis atque pariatur a. Eveniet veritatis et autem? Exercitationem.

◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Tamaño de las cajas (Box-sizing)

La propiedad box-sizing eefine cómo se calculan el ancho y el alto de un elemento (si incluyen el relleno y los bordes o no), nos va a decir desde donde va a empezar a considerar el tamaño de la caja.

A traves de esta propiedad se le dice al navegador como tiene que calcular el tamaño interno de la caja y tiene dos valores: content-box (que es el valor por defecto de la caja) y border-box y se aplican así:

Ejemplos

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Error, at natus commodi, voluptas eum corrupti odio aut reprehenderit iure, dolorum animi! Voluptatum labore, eaque vel sed repellendus voluptas nesciunt earum?
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Error, at natus commodi, voluptas eum corrupti odio aut reprehenderit iure, dolorum animi! Voluptatum labore, eaque vel sed repellendus voluptas nesciunt earum?
Seccion 1
Seccion 2
Seccion 3

◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Propiedades float & clear

La propiedad float nos va a permitir flotar hacia la izquierda o hacia la derecha elementos.

Cuando flotamos un elemento sale de la dicposición natural del elemento HTML

Nota:Al dia de hoy se considera una mala practica trabajar con esta propiedad ya que como los elementos flotan, se genera un problema de superposicion con los siguientes elementos que siguen y que no flotan.

Enlace a 960 grid system que es una biblioteca de CSS enfocada a la maquetación de una página web que utilizaba la propiedad float pero que hoy en dia ya es obsoleta y no se usa, fue reemplazada por frameworks como Bootstrap.
Enlace documentacion propiedades float y clear en el sitio web cssreference.io

Ejemplos

Este elemento flota a la derecha
Este elemento flota a la izquierda
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolor excepturi aperiam quos reprehenderit assumenda laboriosam odit impedit voluptatum cum illo, similique quo soluta adipisci asperiores iusto rem. Aut, atque mollitia.

◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Colapso de margenes verticales

El colapso de margenes se da unicamente en top y bottom no en los horizontales (right y left).

La solución a este problema de las margenes verticales es utilizar solo una propiedad para todos los elementos HTML, o margin top o margin bottom pero nunca utilizar al mismo tiempo ambas propiedades (margin top, margin bottom) porque se va apresentar superposicion de margenes en los elementos.

Ejemplos:

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Aut voluptatem aspernatur sit sapiente! Cum itaque alias ipsam, in aliquid iste? Voluptates, dolorem! Qui eveniet commodi accusamus assumenda dolorum eius placeat?
Sección 1
Sección 2
◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Adición de márgenes horizontales

En los margenes horizontales no sucede el colapso como en los margenes verticales

Ejemplos:

Sección 1
Sección 2
Span 1Span 2Span 3
◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja

Centrado de Cajas

La manera de centrar una caja o elemento HTML (no su contenido) es darle un valor "auto" al margin-left y al margin-right.

El valor "auto" significa, ajustalo automaticamente, por ejemplo:

.sitio-web{
margin-left: auto;
margin-right: auto;
}

Ejemplos:

cabecera
Contenido Principal
Pié de pagina

◀️ Volver a pagina principal 🔼 Ir a inicio Modelo de caja