Каждый день на этой неделе мы будем публиковать статью, отобранную нашим редактором, в рамках CSS Theme Week .
Эта статья предназначена для опытных разработчиков CSS, которым нужна ссылка на свойства, связанные с позиционированием в CSS 2. Каждый раздел этой статьи содержит ссылку на соответствующий раздел Справочника по CSS для SitePoint и Спецификации W3C CSS 2.
Эта статья не предназначена для того, чтобы подробно охватить всю связанную с позиционированием информацию, содержащуюся в спецификации, но описывает только те свойства и значения, которые реализованы в некоторых или во всех современных браузерах и которые вам сегодня пригодятся.
Определения
Сначала давайте рассмотрим несколько определений понятий, которые необходимо объяснить. Вы можете пропустить его, если хотите, и использовать этот список для справки, чтобы проверить, не наткнулись ли вы на что-то. Конечно, не забывайте, что ссылка на SitePoint CSS содержит исчерпывающую информацию обо всех свойствах, а не только тех, которые здесь собраны.
Окно просмотра
http://www.w3.org/TR/REC-CSS2/visuren.html#q2
Окно просмотра — это область экрана, в которой отображается ваша веб-страница. Это не то же самое, что начальный содержащий блок.
Начальный Содержащий Блок
http://www.w3.org/TR/REC-CSS2/visuren.html#initial-containing-block
Начальный блок содержит все пространство, назначенное вашему документу. Обращаясь ко всему пространству, мы включаем любые биты страницы, на которые пользователи должны прокручиваться, чтобы увидеть их (в окне просмотра).
Можно ограничить размер исходного содержащего блока, задав свойства width
height
Корневой элемент
Корневым элементом является элемент html
Когда мы применяем правила CSS к корневому элементу, безопаснее (позволяет браузерам делать то, что они хотят) применять их как к элементу html
body
html, body {
/* Style Rules Here */
}
Однако при таком подходе следует проявлять осторожность, потому что чистый эффект потенциально может усугубиться. Например, выполнение следующих действий приведет к тому, что к каждому краю страницы будет применен отступ в 100 пикселей — по 50 пикселей для каждого элемента.
html, body {
padding:50px;
}
Содержащие блоки
содержащий блок . Это элемент блока, который находится внутри, например:
<div id="content">
<div id="example">
</div>
</div>
div#content
div#example
Типы коробок
Коробки бывают разных типов. Единственные типы, которые нас интересуют в этой статье, это block
inline
Блок-боксы
http://www.w3.org/TR/REC-CSS2/visuren.html#q5
Блочные блоки — это типы блоков, генерируемых (по умолчанию) такими элементами, как p
div
Блок-блок имеет пространство вокруг него, и элементы, которые идут после, начинаются ниже блока, а не рядом с ним.
Например:
<p>Test</p>
<p>Text</p>
будет отображаться (по умолчанию) как:
Test
Text
вместо того:
Test Text
… Как если бы p
Встроенные коробки
http://www.w3.org/TR/REC-CSS2/visuren.html#q7
Встроенные элементы отображаются рядом друг с другом. Например:
<strong>Test</strong>
<em>Text</em>
будет отображаться (по умолчанию) как:
Test Text
вместо того:
Test
Text
… Игнорируя любое другое визуальное форматирование, которое обычно производят эти элементы.
Схемы позиционирования
http://www.w3.org/TR/REC-CSS2/visuren.html#positioning-scheme
В CSS 2 есть пять стилей позиционирования .
Нормальный поток
http://www.w3.org/TR/REC-CSS2/visuren.html#normal-flow
Нормальное позиционирование устанавливается в соответствии с «нормальными» правилами, существующими почти десятилетие.
Относительное позиционирование
http://www.w3.org/TR/REC-CSS2/visuren.html#relative-positioning
Относительно расположенные элементы располагаются в соответствии с нормальным потоком и затем перемещаются. Элементы, которые идут после относительно позиционированного элемента, ведут себя так, как если бы относительно позиционированный элемент находился в своем положении «нормального потока», даже если это означает, что они занимают одно и то же пространство экрана.
Плавающее Позиционирование
http://www.w3.org/TR/REC-CSS2/visuren.html#floats
Коробки, расположенные с помощью float , позиционируются с использованием нормального потока, а затем перемещаются влево или вправо, насколько это возможно. Элементы, которые появляются после них, будут перемещаться вверх, чтобы заполнить любой оставленный пробел, но будут обтекать рамку — они не будут занимать одно и то же место на экране.
Абсолютное позиционирование
http://www.w3.org/TR/REC-CSS2/visuren.html#absolute-positioning
Абсолютно расположенные элементы не подвержены влиянию нормального потока. Они позиционируются путем указания точных расстояний, которые будут существовать между их сторонами и содержащим их блоком.
Фиксированное позиционирование
http://www.w3.org/TR/REC-CSS2/visuren.html#fixed-positioning
Элементы с фиксированным положением работают так же, как элементы с абсолютным позиционированием, за исключением того, что их положение относительно окна просмотра. Таким образом, они не перемещаются, если страница прокручивается — они остаются относительно области просмотра.
Свойства визуального отображения CSS
Свойство display
http://www.w3.org/TR/REC-CSS2/visuren.html#display-prop
Свойство display
Это позволяет вам делать такие вещи, как:
- установить жирный текст на уровень блока,
- иметь встроенные абзацы, или
- не показывать элемент или занимать место на экране.
display:block
Устанавливает выбранные элементы на уровень блока.
display:inline
Устанавливает элементы, выбранные для встраивания.
display:none
Останавливает отображение элемента, которому он назначен. Элемент полностью удален с дисплея — он не занимает места на экране.
Есть несколько других значений для свойства display
Они имеют дело со списками , таблицами и другими типами блоков, которые мы не будем здесь рассматривать, но которые подробно описаны в онлайн- справке по SitePoint.
Собственность position
http://www.w3.org/TR/REC-CSS2/visuren.html#choose-position
Свойство position
- Нормальный поток,
- Относительное позиционирование,
- Абсолютное позиционирование и
- Фиксированное позиционирование.
Это делается путем установки позиции в одно из следующих значений:
position:static;
Установите для этого поля нормальный поток, по умолчанию для всех элементов.
position:relative;
Используйте относительное расположение для этого поля, используя свойства top
right
bottom
left
position:absolute;
Используйте абсолютное позиционирование для этого поля, используя свойства top
right
bottom
left
position:fixed;
Используйте фиксированное расположение для этого поля, используя свойства top
right
bottom
left
top
right
bottom
left
http://www.w3.org/TR/REC-CSS2/visuren.html#position-props
Все схемы позиционирования требуют, чтобы вы их установили, чтобы знать, как выполнить ваш запрос позиционирования. Вы должны всегда устанавливать один из top
bottom
left
right
Установка top
bottom
left
right
left
top
Вы можете использовать следующие значения для этих свойств:
Фиксированная длина
Вы можете использовать фиксированное расстояние, например, 20 пикселей для 20 пикселей.
процент
Вы можете использовать процентное значение, например 20%, что составляет 20% width
height
left
right
top
bottom
Недвижимость с float
http://www.w3.org/TR/REC-CSS2/visuren.html#float-position
Свойство float
float
position
absolute
fixed
float:right;
Коробка всплывает справа от экрана.float:left;
Коробка всплывает слева от экрана.float:none;
Коробка не всплыла.
clear
TTP: //www.w3.org/TR/REC-CSS2/visuren.html#flow-controlЭто свойство используется для управления полями, которые появляются после всплывающего окна. Установка этого свойства в поле гарантирует, что оно будет отображаться ниже любых всплывающих окон, предшествующих ему.
clear:left;
Это поле будет отображаться под любыми левыми полями, которые находятся перед ним.
clear:right;
Это поле будет отображаться под любыми всплывающими справа квадратами.
clear:both;
Это поле будет отображаться под любыми плавающими слева или справа плавающими квадратами.
clear:none;
Этот ящик не очистит плавающие ящики, стоящие перед ним.Свойство
z-index
http://www.w3.org/TR/REC-CSS2/visuren.html#q30Свойство
z-index
z-index
z-index
Если оба имеют одно и то же значение, то последнее в коде отображается сверху.