Это ветвление на основе spec для незамещенных элементов (div является незамещенным элементом):
Если все три из «слева», «ширина» и
'right' are 'auto': сначала установите любой
'auto' значения для 'margin-left' и
'margin-right' до 0. Тогда, если
свойство 'direction' элемента
установление статической позиции
содержащий блок 'ltr' установить 'left'
в статическое положение и применить правило
номер три ниже; в противном случае установите
«вправо» в статическое положение и
применить правило номер один ниже.
(поскольку все 3 свойства не являются автоматическими, вышеуказанное условие не выполнено )
Если ни один из трех не является «авто»: Если
оба поля 'margin-left' и 'margin-right'
«Авто», решить уравнение под
дополнительное ограничение, что два
поля получают равные значения, если это
сделает их негативными, в которых
случай, когда направление содержит
блок 'ltr' ('rtl'), установлен
'margin-left' ('margin-right') до нуля
и решить для «маржа-право»
( «Маржа налево»). Если один из
'margin-left' или 'margin-right' - это
'auto', решите уравнение для этого
значение. Если значения
чрезмерно ограничены, игнорируйте значение для
«влево» (в случае «направления»
свойство содержащего блока
'rtl') или 'right' (в случае 'direction'
is 'ltr') и решить для этого значения.
(поскольку ширина имеет значение auto, указанное выше условие не выполнено )
В противном случае установите «автоматические» значения для
'margin-left' и 'margin-right' до 0,
и выберите один из следующих шести
правила, которые применяются.
(вышеуказанное условие выполнено )
Итак, мы остались с этими 6:
'left' и 'width' - это 'auto', а 'right' - это не 'auto', тогда ширина уменьшается до нужной. Затем решите для «левого» * 1035 *
'left' и 'right' - это 'auto', а 'width' не равно 'auto', тогда, если свойство 'direction' элемента, устанавливающего блок, содержащий статическую позицию, имеет значение 'ltr' set ' влево "в статическое положение, в противном случае установите" вправо "в статическое положение. Затем выберите «влево» (если «direction» - «rtl») или «вправо» (если «direction» - «ltr»).
'width' и 'right' - это 'auto', а 'left' не является 'auto', тогда ширина уменьшается до нужной. Тогда решите за «право»
'left' = 'auto', 'width' и 'right' не являются 'auto', затем решите для 'left'
«ширина» - это «авто», «влево» и «вправо» - не «авто», затем выберите «ширина»
'right' - это 'auto', 'left' и 'width' - не 'auto', затем выберите 'right'
Исходя из вышеизложенного, ширина в этом элементе является автоматической, и поэтому, если вы укажете левую и правую стороны, она будет определять ширину, поэтому она должна быть действительной.
Так что, хотя он полностью действителен в соответствии со спецификацией CSS2.1 / CSS3, он не работает в IE6. Он работает в IE7, IE8, Firefox 3 и Chrome.