Свойство width
элемента в стандартной блочной модели не включает отступы, поля или границы;это ширина, заданная содержимому элемента, а не самому блоку.Поле больше ширины на размер отступа.Затем добавляются границы и, наконец, поле.
В более старых версиях IE (v4 и 5) использовалась нестандартная блочная модель, которая теперь называется «Режимом причуд».Эта блочная модель помещает отступы и границы внутри измеряемой области, так что свойство width
блока включает их.В этой модели проще иметь коробку шириной 100%.
У обеих моделей коробок есть свои сильные стороны, но IE шел вразрез со стандартами, когда внедряли свою коробочную модель, и это было одной из причинэто затрудняло разработчикам обновление старых сайтов, предназначенных для IE, только для работы в других браузерах.
В последнее время было добавлено свойство CSS, которое позволяет дизайнерам выбирать, какую из этих блочных моделей они хотят использовать длялюбые элементы на их странице.Свойство называется box-sizing
и поддерживается большинством браузеров, используемых в настоящее время;единственными основными, которые не поддерживают его, являются IE6 и IE7 (другие требуют префикса поставщика, но поддерживают его).Смотрите здесь таблицу поддержки браузером этой функции: http://caniuse.com/#search=box-sizing
Другой вариант - просто вообще не устанавливать ширину.Элемент <div>
по умолчанию настроен на заполнение доступной ширины, что, в основном, означает 100%, но таким образом, что это работает, независимо от того, какие поля и отступы заданы, что, в основном, и нужно.Если вы переопределили ширину и хотите установить ее обратно на этот параметр, используйте width:auto;
.
Надеюсь, это поможет.