Con HTML / CSS, ¿cómo puedo hacer un elemento que tenga un ancho y / o alto que sea el 100% de su elemento padre y que todavía tenga los márgenes o el relleno adecuado?
Por "apropiado" quiero decir que si mi elemento padre es 200px
alto y especifico height = 100%
conpadding = 5px
, esperaría que obtuviera un 190px
elemento alto con border = 5px
todos los lados, bien centrado en el elemento padre.
Ahora, sé que no es así como el modelo de caja estándar especifica que debería funcionar (aunque me gustaría saber por qué, exactamente ...), por lo que la respuesta obvia no funciona:
#myDiv {
width: 100%
height: 100%;
padding: 5px;
}
Pero me parece que debe haber ALGUNA forma de producir de manera confiable este efecto para un padre de tamaño arbitrario. ¿Alguien sabe de una manera de lograr esta tarea (aparentemente simple)?
Ah, y para que conste, no estoy terriblemente interesado en la compatibilidad con IE, por lo que (con suerte) debería facilitar las cosas un poco.
EDITAR: dado que se solicitó un ejemplo, aquí está el más simple que se me ocurre:
<html style="height: 100%">
<body style="height: 100%">
<div style="background-color: black; height: 100%; padding: 25px"></div>
</body>
</html>
El desafío es entonces que aparezca el cuadro negro con un relleno de 25 píxeles en todos los bordes sin que la página crezca lo suficiente como para requerir barras de desplazamiento.