Tamaños de Caja CSS

La propiedad CSS box-sizing permite incluir el relleno y el borde en el ancho y alto total de un elemento HTML.

Sin la propiedad box-sizing

Por defecto, el ancho y el alto de un elemento es calculado así:

ancho + relleno + borde = ancho real de un elemento

alto + relleno + borde = alto real de un elemento

Lo que significa que: Cuando se establece el ancho/alto de un elemento, el elemento a menudo aparece más grande de lo que se ha establecido. Esto es porque el borde y el relleno del elemento se agregan al ancho / alto especificado del elemento.

El siguiente ejemplo se muestran dos elementos <div> establecidos con el mismo ancho y alto, pero al segundo se le establece un relleno.

CSS:

.div1 {
  width: 300px;
  height: 100px;
  border: 1px solid blue;
}
.div2 {
  width: 300px;
  height: 100px;
  padding: 50px;
  border: 1px solid red;
}

Muestras:

This div is smaller (width is 300px and height is 100px).

 

This div is bigger (width is also 300px and height is 100px).

La propiedad box-sizing soluciona este problema.

Con la propiedad box-sizing

La propiedad box-sizing permite incluir el relleno y el borde en el anco y alto total del elemento.

Para establecerlo se define box-sizing: border-box; a un elemento, y así el resultado se muestra a continuación:

CSS:

.div1 {
  width: 300px;
  height: 100px;
  border: 1px solid blue;
  box-sizing: border-box;
}
.div2 {
  width: 300px;
  height: 100px;
  padding: 50px;
  border: 1px solid red;
  box-sizing: border-box;
}

Muestras:

Anbos div ahora son iguales.

 

Muy bien.

 

Ya que el resultado del uso de box-sizing: border-box; es mucho mejor, muchos desarrolladores desean que todos los elementos en sus páginas funciones de esta manera.

Mucho navegadores web ya usan box-sizing: border-box; para muchos de los elementos, pero no de todos. Por lo cual las entradas de texto de área lucen con diferente ancho al 100%, por nombrar un ejemplo.

El código siguiente, asegura que a todos los elementos apliquen para este comportamiento:

* {
  box-sizing: border-box;
}

Referencias

Propiedad Descripción
box-sizing Define como el ancho y alto de un el elemento es calculado, si debe incluir el relleno y borde o no.