Глава 7. Размеры элемента
Блоки и строки
Прежде чем говорить о работе с размерами элементов их расположении, полях и отступах, расскажу немного о самих элементах, точнее об их типах.
Все элементы (теги) можно разделить на 2 категории: блочные и строковые.
Чем они отличаются?
Сами названия уже говорят о различиях. Блочные или боксовые элементы - это контейнеры, прямоугольные области на мониторе, которым без труда можно присвоить определенное положение, размер, вложить в них другие блоки, определить расположение относительно друг друга, а строковые элементы располагаются в 1 сроку, выравниваются по её базовой линии и служат для форматирования и редакции текста.
К блочным (block) элементам относятся:
div, dl, form, h1-h6, hr, noscript, ol, p, pre, table, ul…
К строчным (inline) элементам относятся:
a, p, cite, code, em, img, input, label, select, span, strong, sub, sup, textarea…
Основные отличия от элементов строкового и блочного типа заключаются в том, что боксовые элементы могут содержать в себе другие элементы, как блочного, так и строкового типа. Строчные же элементы могут включать в себя только строчные элементы.
На примере:
<div><b>Это правильная строка в блоке</b></div>
<b><div>А это неправильная то ли строка, то ли блок.</div></b>
Боксовые элементы по умолчанию располагаются относительно друг друга вертикально, т.е. в начале и конце блока происходит перенос строки, а строковые элементы располагаются горизонтально, перенос строки происходит только в том случае, если это необходимо.
По умолчанию блочные элементы имеют ширину 100% и тем самым оставляют за собой все пространство по горизонтали, у строковых же элементов ширина определяется содержанием.
Пример:
<title>Блочные и строковые элементы</title>
<p style=background:red>Параграф
<p style=background:#00f>Параграф
<p style=background:#f00>Параграф
<hr>
<span style=background:red>Строка</span>
<span style=background:#00f>Строка</span>
<span style=background:#f00>Строка</span>
<hr>
<div style=background:red>Блок</div>
<div style=background:#00f>Блок</div>
<div style=background:#f00>Блок</div>
Ширина и высота блочных элементов
Свойства CSS width и height устанавливают ширину и высоту блочных элементов. Ширина и высота элемента может быть задана следующими способами:
Пример:
<title>Размеры блока</title>
<div style=background:#00f;height:88px;width:88px>Блок 1</div>
<div style=background:#00f;height:88px;width:50%>Блок 2</div>
<div style=background:#f00;height:auto;width:auto>Блок 3</div>
Если содержание элемента превышает его указанный размер, то в некоторых браузерах элемент автоматически присвоит значение auto, а в некоторых содержание выползет за пределы элемента.
Управление содержанием элемента
Что делать с содержанием элемента, если оно превышает его размер?
Если элементу присвоены точные значения высоты и ширины (height, width), а его содержание, например, длинный текст не вмещается в указанных пределах, то по умолчанию такой элемент растягивается до нужных размеров, что не всегда на руку веб-мастеру. На помощь приходит атрибут overflow, который указывает браузеру, что делать с элементом в таких случаях.
Свойство overflow может иметь следующие значения:
Пример:
<title>Содержание элемента</title>
<div style="overflow:auto; width:250px;height:150px;border:solid 2px #dddddd">
<h3 align=center>Диктант</h3>
На дощатой террасе, близ конопляника, небезызвестная вдова Агриппина Саввечна, потчевала, отставного коллежского асессора Аполлона Карповича, моллюсками и другими яствами, под аккомпанемент виолончели.
</div>
Минимальные и максимальные размеры элемента
Так как размеры элемента по умолчанию регулируются исключительно вложенным в него содержанием, текстом, графикой и т.д., то элементы остаются резиновыми. Но хорошо не во всех случаях. Иногда требуется ограничить эту резиновость конкретными размерами. Например, указать ячейке таблицы, что независимо от твоего содержания, можешь быть по высоте не менее 50px, но и не более 88px (определить диапазон её высоты или ширины).
Ниже перечисленные свойства CSS позволяют определить минимальные и максимальные размеры того или иного элемента
Эти свойства CSS могут выражаться в пикселях, процентах от размеров родительского элемента и none (без ограничений).
Пример:
<title>Минимальные и максимальные размеры элемента</title>
<div style=min-height:50px;min-width:88px;max-height:88px;max-width:88px>
Браузер IE игнорирует свойства css min-width, max-width, min-height и max-height.
</div>
Полезные советы:
Не все браузеры одинаково интерпретируют как HTML-теги, так и свойства CSS. Особым "невежеством" по отношению как к пользователям так и к веб дизайнерам отличился IE6 и его более ранние версии. Впрочем, и в остальных браузерах далеко не всё проходит гладко. Отсюда необходимо сделать вывод, что прежде чем выкладывать ту или иную страницу в интернет, её необходимо протестировать в различных браузерах.