Этот вопрос относится к этим 2:
1. css - применение отступа к блоку с прокруткой, нижнее заполнение не работает
2. Заполнение дна не работает для элемента переполнения в нехромных браузерах
Но я нигде не нашел, почему это происходит, то есть почему в Chrome (31) и Opera (18) отступы появляются, а в Firefox (26) и IE (9-10) - нет.
Вот мой тестовый пример:
http://jsfiddle.net/eW39h/4/
Более простой пример из соответствующего вопроса № 1:
http://jsfiddle.net/rwgZu/
<div id="container">
<div id="innerBox"></div>
</div>
#container {
padding: 3em;
overflow-x: hidden;
overflow-y: auto;
width: 300px;
height: 300px;
background: red;
}
#innerBox{
height: 400px;
background: #000;
}
Я на самом деле не ищу исправления, но понимаю, что именно является правильной реализацией (и какие браузеры ошиблись :-)).
РЕДАКТИРОВАТЬ 18 декабря 2013 г.
Основываясь на ответе Марка Одета, я углубился в спецификации и сделал новый тестовый пример.
http://jsfiddle.net/rwgZu/79/
Здесь очевидно, что все браузеры обрезают переполненный блок в одной и той же точке, которая является отступом ", что действительно соответствует спецификации:
Всякий раз, когда происходит переполнение, свойство 'overflow' указывает, будет ли блок обрезан по его краю заполнения
И все же в Chrome есть дополнительная обивка после внутренней коробки.
Интересно, что добавление переполненного содержимого во внутреннее поле приводит к унифицированным результатам во всех браузерах:
http://jsfiddle.net/uPY8j/1/
Я не смог найти в спецификации правила для этого типа условий, поэтому я оставляю вопрос пока открытым.