Статьи

Краткое описание свойств позиционирования CSS

Каждый день на этой неделе мы будем публиковать статью, отобранную нашим редактором, в рамках 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

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

Можно ограничить размер исходного содержащего блока, задав свойства widthheight

Корневой элемент

Корневым элементом является элемент html Когда мы применяем правила CSS к корневому элементу, безопаснее (позволяет браузерам делать то, что они хотят) применять их как к элементу htmlbody

 html, body { 
 /* Style Rules Here */
}

Однако при таком подходе следует проявлять осторожность, потому что чистый эффект потенциально может усугубиться. Например, выполнение следующих действий приведет к тому, что к каждому краю страницы будет применен отступ в 100 пикселей — по 50 пикселей для каждого элемента.

 html, body {  
 padding:50px;
}

Содержащие блоки
содержащий блок . Это элемент блока, который находится внутри, например:

 <div id="content"> 
 <div id="example">
 </div>
</div>

div#contentdiv#example

Типы коробок
Коробки бывают разных типов. Единственные типы, которые нас интересуют в этой статье, это blockinline

Блок-боксы
http://www.w3.org/TR/REC-CSS2/visuren.html#q5

Блочные блоки — это типы блоков, генерируемых (по умолчанию) такими элементами, как pdiv Блок-блок имеет пространство вокруг него, и элементы, которые идут после, начинаются ниже блока, а не рядом с ним.

Например:

 <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;

Используйте относительное расположение для этого поля, используя свойства toprightbottomleft

 position:absolute;

Используйте абсолютное позиционирование для этого поля, используя свойства toprightbottomleft

 position:fixed;

Используйте фиксированное расположение для этого поля, используя свойства toprightbottomleft

toprightbottomleft
http://www.w3.org/TR/REC-CSS2/visuren.html#position-props

Все схемы позиционирования требуют, чтобы вы их установили, чтобы знать, как выполнить ваш запрос позиционирования. Вы должны всегда устанавливать один из topbottomleftright Установка topbottomleftrightlefttop

Вы можете использовать следующие значения для этих свойств:

Фиксированная длина
Вы можете использовать фиксированное расстояние, например, 20 пикселей для 20 пикселей.

процент
Вы можете использовать процентное значение, например 20%, что составляет 20% widthheightleftrighttopbottom

Недвижимость с float
http://www.w3.org/TR/REC-CSS2/visuren.html#float-position

Свойство float floatpositionabsolutefixed

 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-indexz-index Если оба имеют одно и то же значение, то последнее в коде отображается сверху.