В top
, bottom
, left
и right
свойства используются с позицией , чтобы установить размещение элемента. Они влияют только на позиционированные элементы, то есть элементы с position
любым свойством, отличным от static
. Так , например: relative
, absolute
, fixed
, или sticky
.
div ( : || || auto || inherit; )
Вы можете использовать его, например, чтобы переместить значок на место:
button .icon ( position: relative; top: 1px; )
Или поместите специальный элемент внутри контейнера.
.container ( position: relative; ) .container header ( position: absolute; top: 0; )
Значение top
, bottom
, left
и right
может быть любым из следующих:
- любая допустимая длина CSS
- процент от высоты содержащего элемента (для
top
иbottom
) или ширины (дляleft
иright
) auto
inherit
Элемент обычно будет двигаться от заданной стороны, когда его значение положительное, и к нему, когда значение отрицательное. В приведенном ниже примере положительная длина для top
перемещает элемент вниз (от верха), а отрицательная длина для top
перемещает элемент вверх (вверх):
См.
Верхнюю часть пера : положительные и отрицательные значения Мацуко Фридланда (@missmatsuko)
на CodePen.
Позиция
Размещение элемента со значением для top
, bottom
, left
, или в right
зависимости от его значения для position
. Давайте посмотрим, что происходит, когда мы устанавливаем одинаковое значение для top
элементов с разными значениями для position
.
static
top
Свойство не имеет никакого влияния на unpositioned элементы (элементы с position
установленным в static
). Так позиционируются элементы по умолчанию. Вы можете использовать position: static;
как один из методов отмены воздействия top
на элемент.
relative
Если top
для элемента position
установлено значение relative
, равное значению, элемент будет перемещаться вверх или вниз относительно своего исходного положения в документе.
См.
Верхнюю часть пера : родственник Мацуко Фридланда (@missmatsuko)
на CodePen.
absolute
Когда top
для элемента position
установлено значение absolute
, элемент будет перемещаться вверх или вниз относительно своего ближайшего позиционированного предка (или документа, если позиционированных предков нет).
В этой демонстрации розовый прямоугольник слева расположен на 50 пикселей вниз от верхнего края страницы, потому что он не имеет позиционированных элементов-предков. Розовое поле справа расположено 50px вниз от верхней части своего родителя, поскольку родитель имеет position
в relative
.
См.
Верхнюю часть пера : absolute от Мацуко Фридланда (@missmatsuko)
на CodePen.
fixed
Если top
для элемента position
установлено значение set to fixed
, элемент будет перемещаться вверх или вниз по отношению к области просмотра браузера.
См.
Верхнюю часть пера : исправлено с помощью CSS-Tricks (@ css-tricks)
на CodePen.
На первый взгляд может показаться, что между absolute
и нет разницы fixed
. Разницу можно увидеть, если сравнить их на странице, на которой достаточно содержимого для прокрутки. При прокрутке вниз fixed
элемент позиции всегда находится в поле зрения, а absolute
элемент позиции прокручивается.
См.
Прокрутку пера : фиксированная и абсолютная с помощью CSS-Tricks (@ css-tricks)
на CodePen.
sticky
Когда top
для элемента position
установлено значение sticky
, элемент будет перемещаться вверх или вниз по отношению к ближайшему предку с полем прокрутки (или области просмотра, если ни один из предков не имеет ползунка), ограниченный пределами содержащего его элемента.
Установка top
для sticky
позиционированного элемента не имеет большого значения, если его контейнер не выше, чем он есть, и у вас достаточно содержимого для прокрутки. Как и в случае с fixed
, элемент будет оставаться в поле зрения при прокрутке. В отличие от fixed
этого элемент выпадет из поля зрения, когда достигнет краев содержащего его элемента.
См.
Прокрутка пера : фиксированная и закрепленная с помощью CSS-Tricks (@ css-tricks)
на CodePen.
Попался
Установка противоположных сторон
Вы можете установить значение для каждого из top
, bottom
, left
и right
на одном элементе. Когда вы устанавливаете значения для противоположных сторон ( top
и bottom
, или left
и right
), результат может не всегда быть таким, как вы ожидаете.
В большинстве случаев bottom
игнорируется, если top
он уже установлен, и right
игнорируется, если left
он уже установлен. Если для направления установлено значение rtl
(справа налево), left
игнорируется вместо right
. Чтобы каждое значение имело эффект, элемент должен иметь position
значение absolute
или fixed
и иметь height
значение auto
(по умолчанию).
В этом примере, мы установили top
, bottom
, left
и right
в `20px`, и ожидать , что каждая сторона внутренней коробки , чтобы быть 20px от сторон внешней коробки:
См. Раздел
Настройка пера сверху, снизу, слева и справа от CSS-Tricks (@ css-tricks)
на CodePen.
Когда фиксировано не относительно области просмотра
Элементы, для которых position
установлено значение fixed
, не всегда располагаются по отношению к области просмотра. Он будет расположен по отношению к своим ближайшим предком с transform
, perspective
или filter
набор свойств к чему - либо другому , чем none
, если таковой существует.
Добавление или удаление места
Если вы разместили элемент и обнаружили, что теперь пустое место или недостаточно места там, где вы ожидали, это может иметь отношение к тому, находится ли элемент в потоке документа или вне его.
Когда элемент удаляется из потока документа, это означает, что пространство, которое он изначально занимал на странице, исчезает. Это тот случай, когда элемент позиционируется absolute
или fixed
. В этом примере контейнер, содержащий абсолютно позиционированный элемент, свернулся, поскольку абсолютно позиционированный элемент был удален из потока документа:
См.
Поток документов Pen от Мацуко Фридланда (@missmatsuko)
на CodePen.
Поддержка браузера
Вы можете взглянуть на это top
свойство , но кроссбраузерности здесь нет . Используйте по желанию.