Expansión de elementos en CSS para JavaScript
Establecer las propiedades CSS
width y
height
no garantiza que el elemento adquiera
el tamaño especificado. Veamos algunos
ejemplos.
Ejemplo
Ahora las dimensiones del elemento coinciden con las establecidas:
<div id="elem">
text
</div>
#elem {
width: 200px;
height: 200px;
margin: 50px auto;
background: #CFF5BF;
}
:
Ejemplo
Y ahora establezcamos la propiedad
padding al elemento.
Como resultado, el ancho real del elemento será
mayor y se expandirá según el valor establecido
del relleno interno:
<div id="elem">
text
</div>
#elem {
padding: 25px;
width: 200px;
height: 200px;
margin: 50px auto;
background: #CFF5BF;
}
:
Ejemplo
La presencia del borde también expande el elemento:
<div id="elem">
text
</div>
#elem {
width: 200px;
height: 200px;
margin: 50px auto;
background: #CFF5BF;
border: 20px solid #F0D7A1;
}
:
Ejemplo
La propiedad box-sizing
permite cambiar el comportamiento descrito anteriormente.
Es posible hacer que ni el relleno interno
ni el borde expandan el elemento.
Para ello, esta propiedad debe
establecerse en border-box:
<div id="elem">
text
</div>
#elem {
box-sizing: border-box;
padding: 20px;
width: 200px;
height: 200px;
margin: 50px auto;
background: #CFF5BF;
border: 20px solid #F0D7A1;
}
:
Importancia de lo descrito
Desde el punto de vista de JavaScript, la situación descrita
no es muy conveniente. Después de todo, resulta que al leer
el valor de la propiedad width no podemos
estar seguros en absoluto de que el elemento tendrá
exactamente ese ancho.