Это сводило меня с ума уже пару дней, но на самом деле это проблема, с которой я сталкивался последние несколько лет: как с помощью HTML / CSS сделать элемент шириной и / или высота, которая составляет 100% его родительского элемента и все еще имеет надлежащие отступы или поля?
Под «правильным» я подразумеваю, что если мой родительский элемент имеет высоту 200px
и я указываю height = 100%
с padding = 5px
, я бы ожидал, что должен получить элемент 190px
с border = 5px
со всех сторон красиво центрируется в родительском элементе.
Теперь я знаю, что это не то, как стандартная блочная модель указывает, что она должна работать (хотя я хотел бы знать, почему именно ...), поэтому очевидный ответ не работает:
#myDiv {
width: 100%
height: 100%;
padding: 5px;
}
Но мне кажется, что должен быть НЕКОТОРЫЙ способ надежного создания этого эффекта для родителя произвольного размера. Кто-нибудь знает способ выполнения этой (казалось бы простой) задачи?
О, и для записи, я не очень заинтересован в совместимости с IE, так что это должно (надеюсь) немного упростить ситуацию.
РЕДАКТИРОВАТЬ: Поскольку был запрошен пример, вот самый простой, который я могу себе представить:
<html style="height: 100%">
<body style="height: 100%">
<div style="background-color: black; height: 100%; padding: 25px"></div>
</body>
</html>
Задача состоит в том, чтобы черный ящик отображался с отступом 25 пикселей по всем краям, при этом страница не становилась достаточно большой, чтобы требовать полосы прокрутки.