создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

CSS2. Спецификация. Рекомендации W3C. 1998

Модель бокса

предыдущий следующий содержание свойства индекс

Содержание

  • 8.1 Размеры бокса
  • 8.2 Пример полей, заполнения и рамок
  • 8.3 Свойства поля: 'margin-top', 'margin-right', 'margin-bottom', 'margin-left' и 'margin'
  • 8.3.1 Сжатие полей
  • 8.4 Свойства заполнения: 'padding-top', 'padding-right', 'padding-bottom', 'padding-left' и 'padding'
  • 8.5 Свойства рамки
  • 8.5.1 Ширина рамки: 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width' и 'border-width'
  • 8.5.2 Цвет рамки: 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color' и 'border-color'
  • 8.5.3 Стиль рамки: 'border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style' и 'border-style'
  • and-properties>8.5.4 Сокращённые свойства рамок: 'border-top', 'border-bottom', 'border-right', 'border-left' и 'border'

    Модель бокса CSS описывает прямоугольный бокс, который генерируется для элементов дерева документа и располагается в соответствии с моделью визуального форматирования. Страничный бокс это особый вид бокса, детально описанный в разделе страничный носитель.

    8.1 Размеры бокса

    Каждый бокс имеет область содержимого (например, текст, изображение и т.п.) и необязательное окружение - области заполнения, рамки и поля ; размер каждой области специфицируется свойствами, определёнными ниже. На диаграмме показано соотношение этих областей и терминология, используемая для ссылок на разные участки поля/margin, рамки/border и заполнения/padding:

    Image illustrating >e relationship between content, padding, borders, and margins.[D]

    Поле, рамка и заполнение могут быть разорваны в левом, правом, верхнем или нижнем сегментах (например, на диаграмме, "LM" в левом поле, "RP" в правом заполнении, "TB" в верху рамки и т.д.).

    Периметр каждой из 4 областей (содержимого, заполнения, рамки и поля) называется "край", соответственно - каждый бокс имеет 4 края:

    content edge / край содержимого или inner edge /внутренний край Край содержимого окружает отображаемое содержимое.

    padding edge /край заполнения Окружает заполнение бокса. Если заполнение имеет ширину 0, край заполнения - это то же, что и край содержимого. Край заполнения бокса определяет края содержащего блока, установленного боксом.

    border edge /край рамки Окружает рамку бокса. Если рамка имеет ширину 0, то край рамки - это то же, что и край заполнения.

    margin edge /край поля или outer edge /внешний край Окружает поле бокса. Если поле имеет ширину 0, то край поля - тот же, что и край рамки.

    Каждый край может быть разорван слева, справа, вверху и внизу.

    Размеры области содержимого бокса - ширина содержимого и высота содержимого - зависят от нескольких факторов: имеет ли элемент, генерирующий бокс, установленные свойства 'width' или 'height', содержит ли бокс текст или другие боксы, является ли бокс таблицей и т.д. Ширина и высота бокса обсуждаются в главе некоторые детали модели визуального форматирования.

    e-box-width>Ширина бокса выводится как сумма левого и правого поля, рамки, заполнения и ширины содержимого. e-box-height>Высота выводится как сумма верхнего и нижнего поля, рамки, заполнения и высоты содержимого.

    Стиль фона различных областей бокса определяется так:

  • Область содержимого: свойство 'background' генерирующего элемента.
  • Область заполнения: свойство 'background' генерирующего элемента.
  • Область рамки: свойства рамки генерирующего элемента.
  • Область поля: поля всегда прозрачны.

    8.2 Пример полей, заполнения и рамок

    Этот пример документа HTML показывает, как поля, рамки и заполнение взаимодействуют:
    <p>Пример полей, заполнения и рамок
    <STYLE> UL{background: green;margin:12px 12px 12px 12px; padding: 3px 3px 3px 3px;
    /*Рамки не установлены*/
    } lI{color:black;/*цвет текста - чёрный*/background: gray;/*Содержимое, заполнение будет серым*/margin:12px 12px 12px 12px; padding: 12px 0px 12px 12px;/*Заметьте, что заполнение справа 0px*/list-style:none/*перед элементом списка нет никаких глифов*/
    /*Рамки не установлены*/
    } lI.wi>border{border-style:dashed; border-width: medium;/*устанавливает ширину рамок всех сторон*/border-color:black}
    </STYLE>
    <LI>1-йэлемент списка
    <LI class=wi>border>2-й элемент списка длиннее, чтобы показать перенос.
    </UL>
    

    и даёт дерево документа с (помимо других соотношений) элементом UL, в котором есть 2 дочерних LI.

    1-я диаграмма иллюстрирует, что этот пример даст в результате.

    2-я иллюстрирует взаимоотношения между полями, рамками и заполнением элементов UL и LI.

    [D]

    Обратите внимание, что:

  • Ширина содержимого каждого бокса LI вычисляется сверху вниз; содержащий блок для каждого бокса LI устанавливается элементом UL.
  • Высота каждого бокса LI задаётся высотой содержимого плюс верхнее и нижнее заполнение, рамки и поля. Обратите внимание, что горизонтальные поля между боксами lI сжаты.
  • Правое заполнение боксов LI было установлено шириной 0 (свойство 'padding'). Результат виден на 2-й иллюстрации.
  • Поля боксов LI прозрачны - поля всегда прозрачны - так что цвет фона (зелёный) заполнения и области содержимого UL просвечивает сквозь него.
  • 2-й элемент LI специфицирует пунктирную рамку (свойство 'border-style').

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

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

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

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

    <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' в 1 месте в таблице стилей.

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

    Пример:

    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}/*копируется из противоположной стороны (из правой)*/

    8.3.1 Сжатие полей

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

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

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

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

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

    8.4 Свойства заполнения: 'padding-top', 'padding-right', 'padding-bottom', 'padding-left' и 'padding'

    Свойства обтекания специфицируют ширину области заполнения бокса. Сокращённое свойство 'padding' устанавливает заполнение для всех 4 сторон, а другие свойства заполнения устанавливают соответствующие стороны.

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

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

    <percentage> Процентное, высчитывается относительно ширины содержащего блока, генерирующего бокс, в т.ч. и для 'padding-top' и 'padding-bottom'.

    В отличие от свойств полей, значения заполнения не могут быть негативными. Как и в свойствах полей, процентные значения свойств заполнения относятся к ширине бокса, сгенерированного содержащим блоком.

    'padding-top', 'padding-right', 'padding-bottom', 'padding-left'

    Значение:<padding-width>|inherit
    Начальное:0
    Применяется:ко всем элементам
    Наследуется:нет
    Процентное:относительно ширины содержащего блока
    Носитель:визуальный

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

    Пример:

    BLOCKQUOTE{padding-top: 0.3em}
    

    'padding'

    Значение:<padding-width> {1,4}|inherit
    Начальное:не определено для сокращённого свойства
    Применяется:ко всем элементам
    Наследуется:нет
    Процентное:относительно ширины содержащего блока
    Носитель:визуальный

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

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

    Цвет поверхности области заполнения специфицируется через свойство 'background':

    Пример:

    H1{background:white;padding:1em 2em}
    

    Вышеприведённый пример специфицирует вертикальное заполнение '1em' ('padding-top' и 'padding-bottom') и горизонтальное заполнение '2em' ('padding-right' и 'padding-left'). Единицы измерения 'em' относительны к размеру шрифта элемента: '1em' эквивалентно размеру используемого шрифта.

    8.5 Свойства рамки

    Свойства рамки специфицируют ширину, цвет и стиль области рамки бокса. Эти свойства применимы ко всем элементам.

    Примечание. Особенно в HTML, ПА могут отображать рамки определённых элементов (например, кнопок, меню и т.п.) иначе, чем у "обычных" элементов.

    8.5.1 Ширина рамки: 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width' и 'border-width'

    Свойства ширины рамки специфицируют ширину области рамки. Свойства, определённые в этом разделе, относятся к типу значений ::definition of><border-width>, который может устанавливаться в:

    >in Тонкая рамка.

    medium Средняя рамка.

    >ick Толстая рамка.

    ><leng>> Толщина рамки имеет точное значение. Это значение не может быть негативным.

    Интерпретация первых 3 значений зависит от ПА. Следующие соотношения, однако, обязаны выдерживаться:

    '>in' <='medium' <='>ick'.

    К тому же эти значения ширины обязаны быть константными в пределах документа.

    'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width'

    Значение:<border-width>|inherit
    Начальное:medium
    Применяется:ко всем элементам
    Наследуется:нет
    Процентное:N/A
    Носитель:визуальный

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

    'border-width'

    Значение:<border-width> {1,4}|inherit
    Начальное:см. индивидуальные свойства
    Применяется:ко всем элементам
    Наследуется:нет
    Процентное:N/A
    Носитель:визуальный

    Это сокращённое свойство для установки 'border-top-width', 'border-right-width', 'border-bottom-width' и 'border-left-width' в 1 месте в таблице стилей.

    Если имеется 1 значение, то оно применяется ко всем сторонам. Если дано 2 значения, верхняя и нижняя линии рамки устанавливаются в 1-е, а правая и левая линии рамки - во 2-е значение. Если дано 3 значения, верхняя линия рамки устанавливается в 1-е, левая и правая - во 2-е, а нижняя линия рамки - в 3-е значение. Если задано 4 значения, они применяются к верхней, правой, нижней и левой линиям рамки соответственно.

    Пример:

    Комментарии в данном примере поясняют результаты установки ширины верхней, правой, нижней и левой линий рамки:

    H1{border-width:>in;border-width:>in >ick;border-width:>in >ick medium}

    8.5.2 Цвет рамки: 'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color' и 'border-color'

    Эти свойства специфицируют цвет рамки бокса.

    'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color'

    Значение:<color>|inherit
    Начальное:значение свойства 'color'
    Применяется:ко всем элементам
    Наследуется:нет
    Процентное:N/A
    Носитель:визуальный

    'border-color'

    Значение:<color> {1,4}|transparent|inherit
    Начальное:см. индивидуальные свойства
    Применяется:ко всем элементам
    Наследуется:нет
    Процентное:N/A
    Носитель:визуальный

    Свойство 'border-color' устанавливает цвет рамки с 4 сторон.

    Значения имеют следующий смысл:

    <color> Специфицирует значение цвета.

    transparent Рамка прозрачна (хотя и может иметь ширину).

    Свойство 'border-color' может иметь от 1 до 4 значений, и эти значения устанавливаются для 4 сторон так же, как и в 'border-width'.

    Если цвет рамки элемента не специфицирован в свойстве рамки, ПА обязаны использовать значение свойства 'color' элемента как вычисленное значение цвета рамки.

    Пример:

    В этом примере рамка будет сплошной и чёрной:

    p{color:black;background:white;border:solid}

    8.5.3 Стиль рамки: 'border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style' и 'border-style'

    Свойства стиля рамки специфицируют стиль линии рамки бокса (solid, double, dashed и т.д.). Свойства, определённые в этом разделе, относятся к типу значений <border-style>, который может устанавливаться в:

    none Нет рамки. Форсирует вычисленное значение 'border-width' в '0'.

    hidden То же, что и 'none', за исключением разрешения конфликтов рамок для элементов таблицы.

    dotted Рамка из точек.

    dashed Рамка из пунктирных линий.

    solid Рамка из сплошной линии.

    double Двойная сплошная линия. Сумма 2 линий и пространства между ними равна значению 'border-width'.

    groove Рамка выглядит как вырезанная в канве.

    ridge Противоположно 'groove': рамка выглядит как выступающая над канвой.

    inset Весь бокс выглядит вдавленным в канву.

    outset Противоположно 'inset': выпуклый бокс.

    Все рамки прорисовываются на поверхности фона бокса. Цвет рамок со значениями 'groove', 'ridge', 'inset' и 'outset' зависит от свойства 'color' элемента.

    Соответствующие пользовательские агенты (ПА) HTML могут интерпретировать 'dotted', 'dashed', 'double', 'groove', 'ridge', 'inset' и 'outset' как 'solid'.

    'border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style'

    Значение:<border-style>|inherit
    Начальное:none
    Применяется:ко всем элементам
    Наследуется:нет
    Процентное:N/A
    Носитель:визуальный

    'border-style'

    Значение:<border-style> {1,4}|inherit
    Начальное:см. индивидуальные свойства
    Применяется:ко всем элементам
    Наследуется:нет
    Процентное:N/A
    Носитель:визуальный

    Свойство 'border-style' устанавливает стиль для 4 сторон рамки. Может иметь от 1 до 4 значений, и значения устанавливаются для разных сторон, как для 'border-width' выше.

    Пример:

    #xy34{border-style:solid dotted}

    В этом примере горизонтальные линии рамки будут 'solid', а вертикальные - 'dotted'.

    Поскольку начальное значение стиля рамки - 'none', рамка будет видна только после установки значения стиля.

    8.5.4 and-properties>Сокращённые свойства рамок: 'border-top', 'border-bottom', 'border-right', 'border-left' и 'border'

    'border-top', 'border-right', 'border-bottom', 'border-left'

    Значение:[<'border-top-width'>||<'border-style'>||<color>]|inherit
    Начальное:см. индивидуальные свойства
    Применяется:ко всем элементам
    Наследуется:нет
    Процентное:N/A
    Носитель:визуальный

    Это сокращённое свойство для установки ширины, стиля и цвета верхней, правой, нижней и левой сторон рамки.

    Пример:

    H1{border-bottom: >ick solid red}
    

    Это правило устанавливает ширину, стиль и цвет рамки после элемента H1. Опущенные значения установлены в свои начальные значения. Поскольку нижеследующее правило не специфицирует цвет рамки, рамка будет иметь цвет, определённый свойством 'color':

    H1{border-bottom: >ick solid}

    'border'

    Значение:[<'border-width'>||<'border-style'>||<color>]|inherit
    Начальное:см. индивидуальные свойства
    Применяется:ко всем элементам
    Наследуется:нет
    Процентное:N/A
    Носитель:визуальный

    Свойство 'border' - это сокращённое свойство для установки одинаковых значений ширины, цвета и стиля для всех 4 сторон рамки бокса. В отличие от сокращённых свойств 'margin' и 'padding', свойство 'border' не может устанавливать разные значения для 4 сторон. Для этого придётся использовать 1 или более других свойств.

    Пример:

    1-е правило эквивалентно установке 4 последующих значений:

    p{border:solid red}p{border-top:solid red;border-right:solid red;border-bottom:solid red;border-left:solid red}

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

    Пример:

    BLOCKQUOTE{border-color:red;border-left:double;color:black}

    В приведённом примере цвет левой линии рамки - чёрный, а других линий - красный. Это потому, что в 'border-left' установлены ширина, стиль и цвет. Поскольку значение цвета в свойстве 'border-left' не установлено, оно будет взято из свойства 'color'. Фактически свойство 'color', установленное после свойства 'border-left', не имеет к этому никакого отношения.

    предыдущий следующий содержание свойства индекс

  • Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

    Ваше письмо×
    Free Web Hosting