В position
имота може да ви помогне да манипулира местоположението на даден елемент, като например:
.element ( position: relative; top: 20px; )
Спрямо първоначалната си позиция горният елемент сега ще бъде изместен отгоре с 20px. Ако трябваше да анимираме тези свойства, можем да видим колко много контрол ни дава това (въпреки че това не е добра идея поради съображения за производителност):
relative
е само една от шестте стойности за position
свойството. Ето и останалите:
Стойности
static
: всеки елемент има статично положение по подразбиране, така че елементът ще се придържа към нормалния поток на страницата. Така че, ако има набор ляв / десен / отгоре / отдолу / z-индекс, тогава няма да има ефект върху този елемент.relative
: първоначалната позиция на елемент остава в потока на документа, точно кактоstatic
стойността. Но сега ляв / десен / отгоре / отдолу / z-индекс ще работи. Позиционните свойства „изтласкват“ елемента от първоначалната позиция в тази посока.absolute
: елементът е премахнат от потока на документа и други елементи ще се държат така, сякаш дори не е там, докато всички останали позиционни свойства ще работят върху него.fixed
: елементът се отстранява от потока на документа като абсолютно позиционирани елементи. Всъщност те се държат почти еднакво, само фиксираните позиционирани елементи винаги са относителни към документа, а не към конкретен родител и не се влияят от превъртането.sticky
(експериментално): елементът се третира катоrelative
стойност, докато местоположението на превъртането на прозореца за показване достигне определен праг, в който момент елементът заемаfixed
позиция, където му е казано да се придържа.inherit
:position
стойността не се каскадира, така че това може да се използва, за да я принуди по-специално иinherit
стойността за позициониране от нейния родител.
Абсолютно
Ако дъщерният елемент има absolute
стойност, тогава родителският елемент ще се държи така, сякаш детето изобщо не е там:
.element ( position: absolute; )
И когато се опитаме да зададем други стойности като left
, bottom
и right
ще открием, че дъщерният елемент реагира не на измеренията на своя родител, а на документа:
.element ( position: absolute; left: 0; right: 0; bottom: 0; )
За да направим дочерния елемент позициониран абсолютно от неговия родителски елемент, трябва да зададем това на самия родителски елемент:
.parent ( position: relative; )
Сега свойства, като например left
, right
, bottom
и top
ще се отнася към майка елемент, така че ако се направи дете елемент прозрачен можем да видим, че седи прав в долната част на родителя:
Фиксирана
На fixed
стойност е подобна absolute
, тъй като може да ви помогне да позиционирате елемент навсякъде по отношение на документа, обаче тази стойност не се повлиява от превъртане. Вижте дъщерния елемент в демонстрацията по-долу и как, след като превъртите, той продължава да се придържа към дъното на страницата:
Тези данни за поддръжка на браузъра са от Caniuse, който има повече подробности. Число показва, че браузърът поддържа функцията на тази версия и по-нова.
работен плот
Chrome | Firefox | IE | Ръб, край | Сафари |
---|---|---|---|---|
4 | 2 | 7 | 12 | 3.1 |
Мобилен / таблет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 3 | 8 |
Лепкава
На sticky
стойност е като компромис между relative
и fixed
ценности. Към момента на написването в момента това е експериментална стойност, което означава, че не е част от официалната спецификация и е възприето само частично от избрани браузъри. С други думи, може би не е най-добрата идея да използвате това на уебсайт за живо производство.
Какво прави? Е, той ви позволява да позиционирате елемент спрямо каквото и да е в документа и след това, след като потребителят превърти определена точка в прозореца, фиксирайте позицията на елемента към това място, така че той да се показва постоянно като елемент с fixed
стойност.
Вземете следния пример:
.element ( position: sticky; top: 50px; )
Елементът ще бъде разположен относително, докато местоположението на превъртане на прозореца за показване достигне точка, където елементът ще бъде 50px
от горната част на прозореца за гледане. В този момент, на елемента става лепкава и остава на fixed
позицията 50px
горната част на екрана.
Следващата демонстрация илюстрира тази точка, където горната навигация е relative
позициониране по подразбиране, а втората навигация е настроена sticky
на самия връх на прозореца за гледане. Моля, имайте предвид, че демонстрацията ще работи само в Chrome, Safari и Opera по време на писането.
Тези данни за поддръжка на браузъра са от Caniuse, който има повече подробности. Число показва, че браузърът поддържа функцията на тази версия и по-нова.
работен плот
Chrome | Firefox | IE | Ръб, край | Сафари |
---|---|---|---|---|
91 | 59 | Не | 88 | 7,1 * |
Мобилен / таблет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 8 * |
Повече информация
Видео на 25 февруари 2015 г.# 110: Бърз преглед на стойностите на позицията на CSS
▶ Времетраене: 13:34 позиция











