W przypadku HTML / CSS, w jaki sposób mogę utworzyć element, który ma szerokość i / lub wysokość stanowiącą 100% jego elementu nadrzędnego i nadal ma odpowiednie dopełnienie lub marginesy?
Przez „właściwy” rozumiem, że jeśli mój element nadrzędny jest 200px
wysoki i określam za height = 100%
pomocą padding = 5px
, spodziewam się, że powinienem uzyskać 190px
wysoki element ze border = 5px
wszystkich stron, ładnie wyśrodkowany w elemencie nadrzędnym.
Teraz wiem, że nie tak określa się standardowy model pudełkowy, że powinien on działać (chociaż chciałbym wiedzieć, dlaczego dokładnie ...), więc oczywista odpowiedź nie działa:
#myDiv {
width: 100%
height: 100%;
padding: 5px;
}
Wydaje mi się jednak, że musi istnieć NIEZWYKŁY sposób niezawodnego wywołania tego efektu dla rodzica o dowolnej wielkości. Czy ktoś zna sposób na wykonanie tego (pozornie prostego) zadania?
Aha, a dla przypomnienia, nie jestem szczególnie zainteresowany kompatybilnością z IE, więc powinno to (miejmy nadzieję) nieco ułatwić.
EDYCJA: Ponieważ poproszono o przykład, oto najprostszy, jaki mogę wymyślić:
<html style="height: 100%">
<body style="height: 100%">
<div style="background-color: black; height: 100%; padding: 25px"></div>
</body>
</html>
Wyzwanie polega na tym, aby czarna ramka pojawiła się z wypełnieniem 25 pikseli na wszystkich krawędziach, bez powiększania strony do rozmiarów pasków przewijania.