Самый простой способ увидеть, как это делается намеренно, - открыть Инструменты разработчика Chrome и проверить теги BODY и DIV.Обратите внимание, что в моем примере chrome показывает ширину BODY и ширину div, равную 297px.Тем не менее, высота тела составляет 275 пикселей, а DIV - 285 пикселей.
Что это говорит нам, и этоНеудивительно, что Chrome вычисляет настройку границы и удаляет это место где-то еще в поле.В то же время, Chrome уважает высоту без вопросов, поэтому вы получаете вертикальную полосу прокрутки.
Я не могу привести ни одного официального источника, но это был мой опыт.Chrome и Firefox предполагают, что width: 100% предназначено только для заполнения области просмотра, и поэтому они корректно корректируют содержимое поля.
Однако, поскольку существует много других переменных, которые необходимо учитывать для высоты, и поскольку высота являетсяТрудно рассчитать в каком-то смысле, оба браузера используют точные определения CSS.
Технически, оба браузера должны создать горизонтальную полосу прокрутки с вашим кодом.То, что они этого не делают, скорее всего, потому что поставщики сделали то, что, как они думали, разработчик, вероятно, намеревался сделать в максимально возможном количестве случаев.
Редактировать: TL; DR В этом случае для расчета ширины используется режим quirksmode.Установка строгого типа документа создаст новый набор проблем, таких как необходимость установить высоту и ширину html на 100% и убедиться, что высота и ширина 100% находятся на каждом элементе DOM в цепочке.У вас также будут обе полосы прокрутки, так как DOM будет соблюдаться.