Панель Управления





Курс CSS. Урок 35. Абсолютное позиционирование. position:absolute;
Стиль сайта. Онлайновый курс по теме CSS. Сделано в kocby.ru Курс CSS. Урок 35. Абсолютное позиционирование. При абсолютном позиционирование (position:absolute;) элемент позиционируется относительно своего первого позиционируемого (нестатичного) предка. Это значит, что элемент сначала ищет ближайшего нестатичного предка и если находит, то позиционируется относительно него. А если не находит, то позиционируется относительно <body> (<html>). Если элемент имеет свойство position:absolute; и не имеет координирующих свойств (top, right, bottom, left), то элемент остается на том же месте, что и при position:static; (по умолчанию) с той лишь разницей, что теперь при position:absolute; он может расшаривать пространство с контентом родителя.
© Перепечатка разрешается с установкой ссылки на ресурс http://kocby.ru
Курс CSS. Урок 35. Абсолютное позиционирование.
position:absolute;
На прошлом уроке мы изучили основы позиционирования.

Сегодня более подробно разбирем абсолютное позиционирование (position:absolute;).

Итак, напомним, что при абсолютном позиционирование (position:absolute;) элемент позиционируется относительно своего первого позиционируемого (нестатичного) предка.

Это значит, что элемент сначала ищет ближайшего нестатичного предка и если находит, то позиционируется относительно него. А если не находит, то позиционируется относительно <body> (<html>).

Если элемент имеет свойство position:absolute; и не имеет координирующих свойств (top, right, bottom, left), то элемент остается на том же месте, что и при position:static; (по умолчанию) с той лишь разницей, что теперь при position:absolute; он может расшаривать пространство с контентом родителя.

Пусть у нас есть некий большой блок, а внутри блок поменьше. Рассмотрим ситуацию по умолчанию.

Большой блок
Внутри блок поменьше...
Ситуация по умолчанию.


Теперь дадим блоку поменьше свойство position:absolute;

Большой блок
Блоку поменьше присвоили свойство position:absolute; и теперь контент блока не замечает, внутреннего блока! Благодаря прозрачности внутреннего блока мы видим этот контент, но сам контент не желает замечать, что место-то занято! Маленький внутренний блок живет своей жизнью и игнорируется родителем, хотя тот и мешает показывать контент.


Теперь попробуем сопроводить маленький блок свойством позиционирования, например, left:10px;

Большой блок
Теперь попробуем сопроводить маленький блок свойством позиционирования, например, left:0px;
Обратите внимание! Маленький блок позиционируется не относительно родителя, т.к. тот статичный, а относительно первого нестатичного предка.


Теперь сделаем большой блок нестатичным (добавив свойство position:relative;), к маленькому блоку добавим свойства right:0px;и bottom:-20px; вместо left:0px;, остальное оставив как было и посмотрим эффект -

Большой блок -
Теперь сделаем большой блок нестатичным (добавив свойство position:relative;), к маленькому блоку добавим свойства right:0px;и bottom:-20px; вместо left:0px;, остальное оставив как было и посмотрим эффект -
Теперь очевидно, что маленький блок позиционируется относительно своего ближайшего родителя и причина этому - нестатичность родителя.

Теперь очевидно, что маленький блок позиционируется относительно своего ближайшего родителя и причина этому - нестатичность родителя. Обратите внимание, что значения свойств top, bottom, left, right могут быть и отрицательными.

Теперь к нашей HTML заготовки добавим небольшой графический элемент, уголок с надписью "new":

position:static; - По умолчанию. Элементы показываются по порядку, как они появляются в потоке документа.

position:absolute; - Элемент позиционируется относительно своего первого позиционируемого (нестатичного) предка.

position:fixed; - Элемент позиционируется относительно окна браузера. Поэтому они вылетели из таблицы и находятся внизу экрана, 40 и 60 пикселей от нижнего края.

position:relative; - Элемент позиционируется относительно своей нормальной позиции, так, например, "left:20" добавляет 20 пикселей к своей нормальной позиции.

position:inherit; - Значение свойства position (позиционирование) наследуется от своего родителя.



В примере использовали следующие правила для стилей:

.body_css_035 {
	position:relative;
	background-color: #D2D2D2;
	outline: 0px solid #CCCCCC;
	color: #696969;
	font: 11px Verdana, sans-serif;
}

.wrapper_css_035 {
/*	width:80%; */
	width:650px; 
	background-color: #F4F4F4;
	margin: 30px auto;
}

.header_css_035 {
	height:75px;
	background-color: #F8AC18;
	background-image: url('images/redHeader.png');
	background-repeat: no-repeat;
}

.content_css_035 {
	padding: 20px 30px;
}

.block_big_css_035 {
	background-color: #D2F2F2; 
	width:640px; 
	height:120px;
	padding: 10px;
	outline: 1px solid #72D2D2;
}

.block_little_css_035 {
	background-color: #D2F2D2; 
	width:300px; 
	height:60px; 
	outline: 1px solid #02F202;
	opacity: 0.5;
}

#pic_new_css_035 {
	position:absolute;
	top:0;
	left:0;
}


В примере использовали следующий код HTML:
<div id="body_css_035" class="body_css_035" style="padding: 1px 0;">
	<div id="wrapper_css_035" class="wrapper_css_035">
		<div id="header_css_035" class="header_css_035"></div>
		<div id="content_css_035" class="content_css_035">
		<img id="pic_new_css_035" src="images/new.png" width="104" height="104" />
		<p>position:static; - По умолчанию. Элементы показываются по порядку, как они появляются в потоке документа.</p>
		<p>position:absolute; - Элемент позиционируется относительно своего первого позиционируемого (нестатичного) предка.</p>
		<p>position:fixed; - Элемент позиционируется относительно окна браузера. Поэтому они вылетели из таблицы и находятся внизу экрана, 40 и 60 пикселей от нижнего края.</p>
		<p>position:relative; - Элемент позиционируется относительно своей нормальной позиции, так, например, "left:20" добавляет 20 пикселей к своей нормальной позиции.</p>
		<p>position:inherit; - Значение свойства position (позиционирование) наследуется от своего родителя.</p>
		</div>
	</div>
</div>



Созданные новые классы в файле стилей CSS и код HTML будем также использовать в нашем очередном учебном тестовом примере.
css_035_001.html ← кликните, чтобы посмотреть, как выглядит пример на данном сайте...
css_035_001.zip ← скачайте пример, чтобы установить на свой сайт...

Напоминание. Все нужные графические файлы мы скачали заранее, еще на уроке 15...
***** Машина-Функционал для передвижения по страничкам курса CSS *****
:: :: /


Вы кликнули поясняющий рисунок, который показывает, как работает тот или иной функционал. Кликать эти рисунки не надо, нет смысла.

Эти рисунки надо просто смотреть, а тексты к ним читать. Кликать кнопки следует на самом функционале.


Если вы планируете вернуться сюда позднее...
Пожалуйста, запомните эту страничку -
URL: http://kocby.ru/css/p035.html
Спасибо за посещение этой странички и внимательное отношение к ее контенту и дизайну. Удачи и успеха!
© KOCBY.RU :: перепечатка материалов разрешается с указанием ссылки на домен KOCBY.RU ©
Basket is empty :: Корзина пустая
Close and hide in basket :: Закрыть и спрятать в корзину
***** Реклама *****
Посмотри в зеркало! Что там видно?
Красивая девушка брюнетка слева Красивая девушка блондинка справа
Красивая девушка блондинка слева Красивая девушка брюнетка справа
Наверх ↑