Размеры элемента

Блоки и строки.

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

Все элементы (теги) можно разделить на две категории: Блочные и строковые.

Чем они отличаются?

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

К блочным (block) элементам относятся:
<div>, <dl>, <form>, <h1>- <h6>, <hr>, <noscript>, <ol>, <p>, <pre>, <table>, <ul>

К строчным (inline) элементам относятся:
<a>, <br>, <cite>, <code>, <em>, <img>, <input>, <label>, <select>, <span>, <strong>, <sub>, <sup>, <textarea>

Основные отличия от элементов строкового и блочного типа заключаются в том что:

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

На примере:

<div>
<b>Это <i>правильная строка</i> в блоке</b>
</div>

<i><b>
<div>А это неправильная толи строка толи блок. Так лучше не делать!!</div>
</b></i>

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

По умолчанию блочные элементы имеют ширину 100% и тем самым оставляют за собой все пространство по горизонтали, у строковых же элементов ширина определяется содержанием.

Думаю, на примере будет понятнее.

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<title>Блочные и строковые элементы</title>
</head>
<body>
<p style=”background-color: #00ffff;”>Параграф</p>
<p style=”background-color: #00ff00;”>Параграф</p>
<p style=”background-color: #ffff00;”>Параграф</p>
<hr>
<span style=”background-color: #00ffff;”>Строка</span>
<span style=”background-color: #00ff00;”>Строка</span>
<span style=”background-color: #ffff00;”>Строка</span>
<hr>
<div style=”background-color: #00ffff;”>Блок</div>
<div style=”background-color: #00ff00;”>Блок</div>
<div style=”background-color: #ffff00;”>Блок</div>
</body>
</html>

Ширина и высота блочных элементов.

Свойства CSS width и height – устанавливают ширину и высоту блочных элементов. Ширина и высота элемента может быть задана следующими способами:

  • auto – Размеры элемента определяется его содержанием. (по умолчанию)
  • % – Размеры элемента задаётся в процентах от высоты/ширины элемента родителя.
  • px – Размеры элемента задаётся в пикселях или любых других единицах измерения принятых в CSS.

Пример:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<title>Размеры блока</title>
</head>
<body>
<div style=”background-color: #00ffff; height: 100px; width: 250px“>Блок 1</div>
<div style=”background-color: #00ff00; height: 150px; width: 50%“>Блок 2</div>
<div style=”background-color: #ffff00; height: auto; width: auto“>Блок 3</div>
</body>
</html>

Если содержание элемента превышает его указанный размер, то в некоторых браузерах элемент автоматически присвоит значение auto, а в некоторых содержание “выползет” за пределы элемента.

Управление содержанием элемента.

Что делать с содержанием элемента, если оно превышает его размер?

Если элементу присвоены точные значения высоты и ширины (height, width) а его содержание, например длинный текст, не вмещается в указанных пределах, то по умолчанию такой элемент растягивается до нужных размеров, что не всегда на руку веб-мастеру. На помощь приходит атрибут overflow, который указывает браузеру, что делать с элементом в таких случаях.

Свойство overflow может иметь следующие значения:

  • visible – Элемент растягивается до необходимых размеров. (по умолчанию)
  • hidden – Содержание элемента “обрезается” видна лишь та его часть что помещается в элементе.
  • scroll – Добавляются полосы прокрутки (всегда! даже если содержание помещается в пределах элемента).
  • auto – Полосы прокрутки добавляются при необходимости.

Пример:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<title>Содержание элемента</title>
</head>
<body>
<div style=”overflow: auto; width: 250px; height: 150px; border: solid 2px #dddddd”>
<h3 align=”center”>Диктант</h3>
На дощатой террасе, близ конопляника, небезызвестная вдова Агриппина Саввечна, потчевала, отставного коллежского асессора Аполлона Карповича, моллюсками и другими яствами, под аккомпанемент виолончели.
</div>
</body>
</html>

Минимальные и максимальные размеры элемента.

Так как размеры элемента по умолчанию регулируются исключительно вложенным в него содержанием, текстом, графикой.. и т.д. то элементы становятся, вернее, остаются “резиновыми” и это хорошо! Но хорошо не во всех случаях.. иногда требуется ограничить эту “резиновость” конкретными размерами. Например, указать ячейке таблицы, что ты мол, независимо от твоего содержания, можешь быть по высоте не менее 50 пикселей, но и не более 200 пикселей.. определить, так сказать, диапазон её высоты или ширины.

Ниже перечисленные свойства CSS позволяют определить минимальные и максимальные размеры того или иного элемента

  • max-height – максимальная высота элемента
  • max-width – максимальная ширина элемента
  • min -height – минимальная высота элемента
  • min-width – минимальная ширина элемента

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

Пример:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<head>
<title>Минимальные и максимальные размеры элемента</title>
</head>
<body>
<div style=”min-height: 50px; min-width: 100px; max-height: 250px; max-width: 300px; border: solid 2px #dddddd”>
Браузер Internet Explorer игнорирует свойства css min-width, max-width, min-height и max-height.
</div>
</body>
</html>

Полезные советы:

Как Вы уже поняли не все браузеры одинаково интерпретируют как HTML теги, так и свойства CSS. Особым “невежеством” по отношению как к пользователям так и к веб дизайнерам отличился Internet Explorer 6 и его более ранние версии.. Впрочем, и в остальных браузерах далеко не всё проходит гладко. Отсюда необходимо сделать вывод, что прежде чем выкладывать ту или иную страницу в Интернет её необходимо просмотреть (протестировать) в различных браузерах и их версий. А совет заключается собственно в том, что хорошо бы было их иметь под рукой – в установленном виде на Вашем компьютере. Соберите свою “коллекцию” браузеров.

Залишити відповідь