Записи с тегом "отступ"

CSS2-модель форматирования

9 Октябрь 2009 | Автор: admin | Теги: , , ,

Каждый элемент документа может быть помещен в прямоугольный контейнер. Авторы CSS2 называют этот контейнер «ядром» (core content area) и помещают его в еще три контейнера: подложку, рамку и поля. Рисунок показывает эти контейнеры и определяет некоторые полезные понятия.

1 Верхний (top), нижний (bottom), левый внешний (left outer edge) и правый внешний (right outer edge) края ограничивают ядро элемента и связанные с ним области подложки (padding), рамки (border) и полей (margin space). Внутренний верхний (inner top), внутренний нижний (inner bottom), левый внутренний (left inner edge) и правый внутрен
ний (right inner edge) края определяют границы ядра. Дополнительное пространство вокруг элемента – это область между внутренними и внешними краями, включающая подложку, рамку и поля. Броузер может опускать любое из этих дополнительных пространств, и для многих элементов внешние и внутренние края совпадают.

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

Поля смежных по горизонтали элементов не перекрываются. Вместо этого CSS2 модель складывает смежные горизонтальные поля. К примеру, если у абзаца левое поле один дюйм и он соседствует с изображением, правое поле которого 0,5 дюйма, тогда полное расстояние между ними будет равно полутора дюймам. Это правило относится и к вло
женным элементам, так что абзац, содержащийся в разделе, будет иметь левое поле, равное сумме левых полей раздела и абзаца.

Как видно из рисунка, полная ширина элемента равна сумме семи величин: левого и правого полей, левой и правой рамки, левой и правой подложки и ядра элемента. Сумма этих семи величин должна равняться полной ширине элемента. Из этих семи величин только трем может быть присвоено значение auto: ширине элемента и его левому и правому полю. Это означает, что броузер может вычислять значение для этих свойств. При необходимости броузер следует перечисленным ниже правилам:

• Если ни для одного из этих свойств не установлено значение auto и полная ширина оказывается меньше ширины родительского элемента, свойству margin-right назначается auto и правое поле увеличивается, чтобы сделать полную ширину элемента равной ширине родительского.
• Если auto назначено ровно одному свойству, именно оно будет сделано достаточно большим, чтобы полная ширина стала равной ширине родительского элемента.
• Если width, margin left и margin right установлены в auto, поддерживающий стандарт CSS2 броузер определит левое и правое поля равными нулю и назначит width достаточно большим, чтобы сделать полную ширину равной ширине родительского элемента.
• Если левое и правое поля установлены в auto, они всегда будут равными, чтобы центрировать элемент относительно родительского.

Существуют специальные правила для плавающих элементов. Поля плавающего элемента (такого как изображение с выравниванием align=left), если только они не отрицательные, не схлопываются с полями охватывающего или предыдущего элемента.

<body>
<p>
<img align=left src=»pics/img.gif»>
Some sample text…
</body>

Броузер двигает изображение вместе с его полями влево и вверх, насколько это возможно без перекрытия левого и верхнего полей абзаца или тела документа. Левые поля абзаца и содержащего его тела документа складываются, тогда как верхние схлопываются.

Свойство word-spacing

28 Сентябрь 2009 | Автор: admin | Теги: , ,

Используйте свойство word-spacing, чтобы увеличить расстояние между словами в теге. Вы можете присвоить word spacing либо длину, либо ключевое слово normal, возвращающее обычное расстояние между словами. К примеру:

h3 {word-spacing: 25px}

помещает дополнительные 25 пикселов между словами в теге <h3>. Все популярные броузеры поддерживают свойство word-spacing.

Свойство text-indent

14 Сентябрь 2009 | Автор: admin | Теги: , ,

Существует традиция, в наши дни уже не такая общепринятая, начинать первую строку абзаца с отступом. Некоторые же текстовые блоки, такие как определения, обычно выносят первую строку влево, создавая то, что называется обратным или висячим отступом.

Свойство text indent стандарта CSS2 позволяет начинать абзац с красной строки или с висячего отступа, управляя величиной отступа первой строки в блоке. Применяйте с этим свойством длины и процентные значения. Отрицательные значения создают висячий отступ. Процентные – влекут за собой вычисление величины отступов в долях ширины
родительского элемента. По умолчанию значение свойства – ноль.

Чтобы выводить все абзацы в документе с красной строки, напишите, скажем:

p {text indent: 3em}

Использованная единица длины em масштабирует величину отступа в зависимости от размера шрифта на разных броузерах.

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

p.wrong {text-indent: -3em}
p.hang {text-indent: -3em; margin-left: 3em}
p.large {text-indent: -3em; margin-left: 6em}

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

Свойство line-height

5 Сентябрь 2009 | Автор: admin | Теги: , ,

Используйте свойство line-height (высота строки) для определения минимального расстояния между строками в тексте, являющемся содержимым тега. Когда броузер выводит текст с одинарным интервалом, верх следующей строки всего лишь на несколько пунктов ниже предыдущей. Увеличивая высоту строк, вы увеличиваете расстояние между
ними.

Значением свойства line-height может быть абсолютная или относительная длина, процентное значение, масштабный множитель или ключевое слово normal. Например:

p {line-height: 14pt}
p {line-height: 120%}
p {line-height: 2.0}

Первый пример устанавливает расстояние между базовыми линиями последовательных строк текста в точности равным 14 пунктам. Вто-рой указывает, что высота строки должна составлять 120% от размера шрифта. Последний пример использует масштабный множитель, чтобы установить высоту строки в два раза большей, чем размер шрифта,
выводя текст с двумя интервалами. Принятое по умолчанию значение normal обычно эквивалентно масштабному множителю 1,0 или 1,2.

Имейте в виду, что абсолютные и процентные значения свойства line-height применяются для вычисления высоты строки, основываясь на значении font-size. Вычисленное значение этого свойства наследуется дочерними элементами. Последующие изменения свойства font-size в родительском и дочернем элементах уже не изменяют вычисленную высоту строки.

Масштабные множители, напротив, откладывают вычисление высоты строки до момента действительного отображения текста. Следовательно, варьирование font-size локально воздействует на line-height. Вообще, лучше использовать для свойства line-height масштабные множители, чтобы высота строки автоматически менялась вместе с размером
шрифта.

Рассматриваемое обычно отдельно от характеристик шрифтов свойство line-height (точнее, его значение) может служить одним из элементов спецификации свойства font.

Свойство letter-spacing

2 Сентябрь 2009 | Автор: admin | Теги: , ,

Свойство letter-spacing вставляет дополнительные промежутки между символами в тексте при его отображении броузером. Значение свойства может быть либо длиной, либо принятым по умолчанию ключевым словом normal, указывающим, что броузер должен использовать обычное расстояние между буквами. К примеру:

blockquote {letter-spacing: 2px}

вставляет дополнительные два пиксела между соседними буквами в теге <blockquote>. А так выглядят 5 пикселов между символами. Все популярные броузеры поддерживают это свойство.