Если есть только одно значение, оно применяется со всех сторон.
Если есть два значения, для полей верхний и нижний заданы значения первое значение и справа и слеваполя установлены на второй.
Если существует три значения: верхнийк первому значению слева и справаустановлены на второй, а нижнийустанавливается на третье.
Если есть четыре значения, они применяются к вершине, справа, внизу и слева, соответственно.
body { margin: 2em } /* all margins set to 2em */
body { margin: 1em 2em } /* top & bottom = 1em, right & left = 2em */
body { margin: 1em 2em 3em } /* top=1em, right=2em, bottom=3em, left=2em */
Это определяется стандартом CSS, поэтому он должен быть согласованным во всех браузерах, которые правильно реализуют CSS. Для совместимости браузеров посмотрите blooberry История поддержки CSS и quirksmode. Согласно blooberry, margin был впервые реализован в IE3, поэтому IE6 должен быть в порядке.
Ответ 2
Для полей и отступов вы можете указать один, два, три или четыре значения, разделенные пробелами:
Одно значение: Все четыре стороны используют это значение.
Два значения: верх/низ получают первое значение; влево/вправо получить второй
Три значения: верхний получает первый, слева/справа получает второй, нижний получает третий
Четыре значения: верхнее, правое, нижнее, левое (т.е. по часовой стрелке с полудня) получают каждое значение