Кувалдин Артем
Разработчик интерфейсов
– устанавливает способ позиционирования элемента относительно окна браузера или других объектов на веб-странице.
– положение бокса вычисляется относительно позиции, которую блок занимал бы в нормальном потоке.
– для задания смещения используются свойства top | right | bottom | left.
div { position: relative; }
.top { top: 10px; }
.right { right: 10px; }
.bottom { bottom: 10px; }
.left { left: 10px; }
.bottom-right { bottom: 10px; right: 10px; }
.top-left { top: 10px; left: 10px; }
div {position: relative;}
.top { top: -10px; }
.right { right: -10px; }
.bottom { bottom: -10px; }
.left { left: -10px; }
.bottom-right { bottom: -10px; right: -10px; }
.top-left { top: -10px; left: -10px; }
div {
right: -20px;
left: -20px;
}
.parent {
direction: rtl;
}
.rtl,
.ltr {
right: -20px;
left: -20px;
}
.box1 {
top: -20px;
bottom: -20px;
}
.box2 {
top: 20px;
bottom: 20px;
}
.box1 {
top: 50%;
left: 50%;
}
.box2 {
bottom: 50%;
right: 50%;
}
.wrap { height: 300px; }
width: auto | по содержимому или всё пространство |
width: 50% | от ширины родителя |
height: auto | по содержимому |
height: 50%; | от высоты родителя, если его высота отлична от auto |
padding: 50% | от ширины родителя |
margin: 50% | от ширины родителя |
– прямоугольник, относительно которого считаются позиция и размеры бокса элементов.
При таком позиционировании блок выводится из потока, при этом сам блок образует новый содержащий блок.
wrapper
box1
box2
.box {
position: absolute;
}
Позиционируется относительно первого предка, у которого position ≠ static (содержащий блок). Если такого нет – позиционируется относительно корневого элемента.
.box {
position: absolute;
top: 0;
left: 0
}
Позиционируется относительно первого предка, у которого position ≠ static (содержащий блок). Если такого нет – позиционируется относительно корневого элемента.
.wrap {
position: relative;
}
.box {
position: absolute;
top: 0;
left: 0
}
.box1 {
position: absolute;
right: 0;
bottom: 0;
}
.box2 {
position: absolute;
top: 0;
left: 0;
}
.box1 {
position: absolute;
top: 10px;
right: 20px;
bottom: 30px;
left: 40px;
}
Можно задавать значения в %. Раccчитываются относительно размеров содержащего блока.
.box1 { position: absolute;
top: 0;
right: 50%;
bottom: 50%;
left: 0;
}
.box2 { position: absolute;
top: 50%;
right: 0;
bottom: 0;
left: 50%;
}
width/height: auto | по содержимому или координатам |
width/height: 50% | от ширины/высоты содержащего блока |
padding: 50% | от ширины содержащего блока |
margin: 50% | от ширины содержащего блока |
Содержащий блок у fixed элементов – это всегда вьюпорт. Во всех случаях.
wrapper
fixed
.fixed {
position: fixed;
width: 50%;
top: 100px;
left: 100px;
}
Пример
Элемент отображается как относительно спозиционированный до тех пор, пока не пересечёт специальную границу и тогда он ведёт себя как position fixed.
- A
- Andrew W.K.
- Apparat
- B
- Battle
- ...
.dt {
position: sticky;
top: 0;
}
Пример
Если элементы находятся в равных условиях – элемент, который находится ниже в потоке, будет выше по оси Z.
box1
box2
box3
.box2, .box3 {
margin-top: -20px;
}
Каждый элемент может находиться как ниже, так и выше других объектов веб-страницы, их размещением по z-оси и управляет z-index.
.box {
position: relative; /*absolute | fixed*/
/*z-index: n; где n ∈ Z | auto*/
z-index: 1;
}
Элементы с общими родителями, перемещающиеся на передний или задний план вместе, известны как контекст наложения.
Условия создания контекста наложения:
Нельзя расположить элемент из одного контекста ноложения между элементами другого контекста
red box
green box text!
blue box
red
green
blue
.red {
position: relative;
/*z-index: auto;*/
}
red
green
blue
.red {
opacity: .99;
}
red
green
blue
.red { position: relative;
z-index: 0;
}
.green { position: relative;
z-index: 1;
}
red
green
blue
.red {
position: relative;
z-index: 0;
}
.green {
position: relative;
z-index: -1;
}
red
green
blue
.wrap { opacity: 0.99; }
.red {
position: relative;
z-index: 999;
}
.green {
position: relative;
z-index: 0;
}
red
green
blue
.red {
position: relative;
z-index: 999;
}
.green {
position: relative;
z-index: -999;
}
Подсветка строк и колонок в таблице.
td { position: relative; }
td::after {
position: absolute;
left: 0;
top: -5000px;
width: 100%;
height: 10000px;
z-index: -1;
content: '';
}
z-index: 1;
.box {
/*float: left | right | none*/
float: left;
}
float-left
Текст или inline-элементы
float-right
Текст или
inline-элементы
.float-left {
float: left;
}
.float-right {
float: right;
}
float-left
Текст или inline-элементы
float-right
Текст или
inline-элементы
.float-left {
float: left;
}
.float-right {
float: right;
}
.box {
/*clear: left | right | both*/
clear: left;
}
Применение этого свойства сдвигает элемент вниз до тех пор, пока не закончатся float'ы слева/справа/с обеих сторон.
.wrapper {
clear: left;
}
.wrapper {
clear: right;
}
.wrapper {
clear: both;
}
– это регион страницы, в котором блоки размещаются в привычном для блоков порядке. Элементы из разных блочных контекстов форматирования никак не могут повлиять на положение друг друга на странице.
.wrapper1 {
overflow: hidden;
}
.wrapper2 {
overflow: hidden;
}
float: left;
box
.box {
overflow: hidden;
}
float: left;
float: left;
b1
b2
b3
b4
div { float: right }
left
right
center
.left { float: left }
.right { float: right }
.center { overflow: hidden }
body { width: 50% }