Опубликован: 06.06.2006 | Доступ: свободный | Студентов: 3910 / 694 | Оценка: 4.34 / 4.02 | Длительность: 21:23:00
Лекция 8:

Модель бокса

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >

Свойства поля: 'margin-top', 'margin-right', 'margin-bottom', 'margin-left' и 'margin'

Свойства поля специфицируют область полей бокса. Сокращённое свойство 'margin' устанавливает поле для всех четырёх сторон, в то время как другие свойства устанавливают только соответствующие стороны.

Свойства, определённые в этом разделе, относятся к типу значений <margin-width>, который может устанавливаться в:

<length>

Специфицирует фиксированную ширину.

<percentage>

Процентное значение высчитывается относительно ширины "Модель визуального форматирования" сгенерированного бокса. Это верно для 'margin-top' и 'margin-bottom' везде, кроме "Страничные носители" , где процентные значения относятся к высоте бокса страницы.

auto

См. "Модель визуального форматирования. Детали" .

Негативные значения свойств полей допускаются, но могут существовать ограничения, специфичные для конкретных реализаций.

'margin-top', 'margin-right', 'margin-bottom', 'margin-left'

Значение: <margin-width> | inherit

Начальное: 0

Применяется: ко всем элементам

Наследуется: нет

Процентное: относительно ширины содержащего блока

Носитель: визуальный

Это свойство устанавливает верхнее, нижнее, правое и левое поля бокса.

H1 { margin-top: 2em }

'margin'

Значение: <margin-width> {1,4} | inherit

Начальное: не определено для сокращённого свойства

Применяется: ко всем элементам

Наследуется: нет

Процентное: относительно ширины содержащего блока

Носитель: визуальный

'margin' - это сокращённое свойство для установки значений 'margin-top', 'margin-right', 'margin-bottom' и 'margin-left' в одном месте в таблице стилей.

Если имеется одно значение, то оно применяется ко всем сторонам. Если дано два значения, верхнее и нижнее поля устанавливаются в первое, а правое и левое поля - во второе значение. Если дано три значения, верхнее поле устанавливается в первое, левое и правое - во второе, а нижнее поле - в третье значение. Если задано четыре значения, они применяются к верхнему, правому, нижнему и левому полям соответственно.

BODY { margin: 2em }         /* все поля установлены в 2em */
BODY { margin: 1em 2em }     /* верхнее и нижнее = 1em, правое и левое = 2em */
BODY { margin: 1em 2em 3em } /* верхнее=1em, правое=2em, нижнее=3em, левое=2em */

Последнее правило эквивалентно следующему:

BODY {
  margin-top: 1em;
  margin-right: 2em;
  margin-bottom: 3em;
  margin-left: 2em;          /* копируется из противоположной стороны (из правой) */

Сжатие полей

В этой спецификации выражение сжатие полей означает, что смежные поля (не разделённые заполнением и рамками ) двух или более боксов (которые могут быть последовательными или вложенными) образуют единое поле.

В CSS2 вертикальные поля никогда не сжимаются.

Горизонтальные поля могут сжиматься между определёнными боксами:

  • Два или более смежных горизонтальных поля боксов "Модель визуального форматирования" при нормальном расположении сжимаются. Результирующая ширина поля - это максимальная ширина из смежных полей. В случае негативных значений полей, абсолютный максимум негативных смежных полей отсчитывается от максимума позитивных смежных полей. Если нет позитивных полей, абсолютный максимум негативных смежных полей отсчитывается от нуля.
  • Вертикальные поля между обтекаемым боксом и любым другим боксом не сжимаются.
  • Поля абсолютно и относительно позиционированных боксов не сжимаются.

См. иллюстрацию сжимаемых полей в примере полей, заполнения и рамок.

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >