Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
183
Добавлен:
10.05.2015
Размер:
742.91 Кб
Скачать

Отрицательные поля

Всем свойствам полей можно присваивать отрицательные значения. В этом случае смежное поле может быть фактически до некоторой степени "исключено". При задании достаточно большого отрицательного поля для достаточно большого элемента смежный элемент может даже перекрываться.

Например, рассмотрим следующие простые элементы div.

<div id="header"><h1>Lovely header</h1></div>

<div id="content"><p>Overlapping text is entirely unreadable</p></div>

При оформлении с помощью следующего CSS

body {background-color:white; font-family:Geneva, Arial, Helvetica, sans-serif;}

#header {background-color:yellow;}

h1 {color:red; font-size:2em; }

создается вывод, показанный на рисунке 30.2:

Рис. 30.2.  Два элемента из простого примера. Ничего особенного для просмотра.

Теперь начинается интересное. Добавим достаточно значительное отрицательное поле сверху у нижнего элемента, используя следующее правило:

#content {margin-top:-3em;}

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

Рис. 30.3.  При применении отрицательных полей нижний элемент смещается вверх и перекрывает заголовок.

Сжатие полей

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

p {

margin: 1em auto 1.5em auto;

}

Если документ, включающий это правило стиля, выводится буквально, то получающееся поле между двумя параграфами в последовательности будет составлять 2.5em, как сумма нижнего поля параграфа 1 (1.5em) и верхнего поля параграфа 2 (1em). Однако благодаря применению сжимаемых полей, поле между ними будет только 1.5em.

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

Пример 1

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

Для начала будут добавлены поля ко всем элементам, где они нужны.

Начальная таблица стилей

body {

font-size: 14px;

font-family: Palatino,'Palatino Linotype',Georgia, sans-serif;

}

p {

text-align: justify;

text-indent: 1.429em;

line-height: 1.5;

}

q {

letter-spacing: .143em;

}

q:before,

q:after {

content: "";

}

h1 {

font-size: x-large;

font-family: Helvetica,Arial,sans-serif;

font-style: italic;

}

blockquote {

font-family: Helvetica,Arial,sans-serif;

}

blockquote p {

text-align: left;

text-indent: 0;

}

.sectionNote {

font-size: medium;

font-style: normal;

}

.attribution {

font-size: small;

line-height: 1.5;

}

.author {

font-weight: bold;

text-transform: uppercase;

}

.source a {

text-decoration: none;

}

.pullQuote {

word-spacing: .143em;

}

.opening {

font-variant: small-caps;

}

Листинг .

Новые границы для тела, заголовка, цитаты, контейнера документа, и параграфов