Avec HTML / CSS, comment puis-je créer un élément dont la largeur et / ou la hauteur correspond à 100% de son élément parent et qui a toujours un remplissage ou des marges appropriés?
Par «bon», je veux dire que si mon élément parent est 200px
grand et que je précise height = 100%
avec, padding = 5px
je m'attendrais à ce que j'obtienne un 190px
élément haut avec border = 5px
de tous les côtés, bien centré dans l'élément parent.
Maintenant, je sais que ce n'est pas ainsi que le modèle de boîte standard spécifie que cela devrait fonctionner (bien que j'aimerais savoir pourquoi, exactement ...), donc la réponse évidente ne fonctionne pas:
#myDiv {
width: 100%
height: 100%;
padding: 5px;
}
Mais il me semble qu'il doit y avoir QUELQUE manière de produire de manière fiable cet effet pour un parent de taille arbitraire. Quelqu'un connaît-il un moyen d'accomplir cette tâche (apparemment simple)?
Oh, et pour mémoire, je ne suis pas très intéressé par la compatibilité IE, ce qui devrait (espérons-le) faciliter les choses un peu.
EDIT: Puisqu'un exemple a été demandé, voici le plus simple auquel je puisse penser:
<html style="height: 100%">
<body style="height: 100%">
<div style="background-color: black; height: 100%; padding: 25px"></div>
</body>
</html>
Le défi consiste alors à faire apparaître la boîte noire avec un remplissage de 25 pixels sur tous les bords sans que la page ne devienne suffisamment grande pour nécessiter des barres de défilement.