Заголовок

CSS свойство position

Свойство position помогает управлять расположением элементов на странице. Например, следующие инструкции:

сместят элемент относительно своего исходного положения вниз на 10px.

Синтаксис

position: static | absolute | relative | fixed | sticky | inherit 

Свойство может применяться вместе с указанием отступа от краев контейнера (левого, нижнего, правого, верхнего).

Например, создадим два контейнера, родительский (parent) – в синей рамке и дочерний (element) внутри него. Для дочернего элемента установим относительное позиционирование relative и сдвиги сверху и слева по 10px.

Результат выполнения видно ниже.

Значения

Свойство position может принимать следующие значения:

static По умолчанию каждый элемент имеет положение static , при котором он находится в обычном потоке страницы. Если установлено, то применение left , top , right и bottom не имеет никакого воздействия. absolute Элемент удаляется из потока документа, а другие блоки будут вести себя так, как будто его нет. Положение блока определяется значениями top , right , bottom , и left . Блок расположится как бы поверх всех элементов. Учтите, что на местоположение влияет значение свойства position его предка. Позиционирование идет от ближайшего предка со значением position не равном static . Если такого не найдется, отсчет координат идет от документа. relative Позиционируется обычным образом, а затем смещается относительно своей позиции в соответствии со значениями top , right , bottom и left . Такое смещение не влияет на местоположение других элементов. fixed При указании этого значения элемент привязывается к точке на экране, указанной значениями left , top , right и bottom , при этом блок не меняет своего положения при прокрутке документа. sticky Экспериментальное свойство – элемент обрабатывается как имеющий относительное положение до тех пор, пока положение прокрутки области просмотра не достигнет указанного порога, после чего блок занимает фиксированное положение, в котором он и остается. inherit Это значение можно использовать, чтобы принудительно заставить наследовать значение позиционирования от его предка.

Читайте также:  Close button icon css

Координаты

Для сдвига можно использовать четыре координаты:

  • top – сдвиг от верхней границы
  • bottom – сдвиг от нижней границы
  • left – сдвиг слева
  • right – сдвиг справа

Не будут работать одновременно указанные top и bottom , left и right . Нужно использовать только одну границу из каждой пары.

В качестве указания значений можно использовать принятые в CSS единицы измерения: px, em и т.п., а также проценты. Так, left: 10% сместит элемент на 10% его ширины вправо.

Возможны отрицательные координаты. При смещении часть элемента может оказаться за границей контейнера или документа.

Рассмотрим их работу подробнее на примерах.

Абсолютное позиционирование

Если дочерний элемент имеет абсолютное значение, то родительский будет вести себя так, как будто дочернего вообще нет. Элемент позиционируется относительно своего ближайшего предка, который не является static . Если такого не найдется, тогда он спозиционируется относительно страницы.

Создадим два блока. При этом для предка не будем устанавливать position , а для дочернего зададим:

В результате видим, что элемент расположился относительно всего документа (прижался к его низу), а не своего предка.

Таким образом для корректного положения нужно задать позиционирование для предка. Например:

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

  • Ширина элемента с position: absolute устанавливается по содержимому.
  • Элемент получает свойство display:block .

Фиксированное позиционирование

Значение fixed по воздействию похоже на абсолютное позиционирование. Оно поможет расположить элемент в любом месте документа, но это расположение не будет меняться при прокрутке документа. Посмотрите на поведение дочернего элемента на демонстрации ниже, на то, как при прокрутке он продолжает оставаться внизу страницы.

Для закрепления блока внизу экрана использовалось bottom , и точно также вы можете поднять его вверх используя свойство top .

При position , установленном в значения absolute или fixed , свойство display по умолчанию устанавливается в block , а float — в none .

“Липкое” позиционирование

Sticky можно перевести как “липкий”. Это некий компромисс между относительным и фиксированным значениями. На текущий момент это экспериментальное значение и не является частью официальной спецификации. Оно лишь частично поддерживается некоторыми браузерами. Поэтому, вероятно, пока не стоит использовать его на рабочих проектах.

Что оно делает? Позволяет позиционировать элемент относительно чего-либо в документе, а затем, когда пользователь прокручивает определенную точку в области просмотра, фиксирует положение элемента в этом месте, чтобы он оставался постоянно отображаемым, как фиксированный. Проще понять его работу взглянув на пример ниже.

Sticky элемент «прилипает» к своему ближайшему предку с прокруткой, созданной при overflow равном hidden , scroll , auto или overlay , даже если тот не является ближайшим фактически прокручивающим родителем.

Здесь элемент будет располагаться относительно, пока при прокрутке области просмотра его положение не достигнет точки, в которой он будет находиться на расстоянии 30px от верха области просмотра. В этот момент он станет липким и остается в фиксированной позиции 30 пикселей вверху экрана.

Следующий пример демонстрирует иллюстрирует момент, где первое меню навигации имеет относительное позиционирование по умолчанию, а второе меню настроено на закрепление в самом верху области просмотра. Этот пример будет работать в Chrome, Safari и Opera, а в остальных браузерах только если они уже доработали его поддержку.

Источник

Относительное позиционирование

Если задать значение relative для свойства position , то положение элемента устанавливается относительно его исходного места. Добавление свойств left , top , right и bottom изменяет позицию элемента и сдвигает его в ту или иную сторону от первоначального расположения. Положительное значение left определяет сдвиг вправо от левой границы элемента, отрицательное — сдвиг влево. Положительное значение top задаёт сдвиг элемента вниз (рис. 1), отрицательное — сдвиг вверх.

Значения свойств left и top при относительном позиционировании

Рис. 1. Значения свойств left и top при относительном позиционировании

Свойства bottom и right производят обратный эффект. При положительном значении right сдвигает элемент влево от его правого края, при отрицательном — сдвигает вправо (рис. 2). При положительном значении bottom элемент поднимается вверх, при отрицательном опускается вниз.

Значения свойств right и bottom при относительном позиционировании

Рис. 2. Значения свойств right и bottom при относительном позиционировании

Для относительного позиционирования характерны следующие особенности:

  • элемент можно смещать относительно исходного положения с помощью свойств left , right , top и bottom ;
  • при смещении элемента относительно исходного положения, место, которое занимал элемент, остаётся пустым и не заполняется ниже или вышележащими элементами;
  • если сдвинуть элемент вправо за пределы окна браузера, то появится горизонтальная полоса прокрутки;
  • если сдвинуть элемент вниз за пределы окна браузера, то появится вертикальная полоса прокрутки;
  • смещение элемента влево и вверх за пределы окна браузера не оказывает влияния на полосы прокрутки;
  • работает свойство z-index ;
  • этот тип позиционирования неприменим к элементам таблицы вроде ячеек, строк, колонок и др.

В примере 1 показан сдвиг текста заголовка вниз для придания ему особого стиля написания.

Пример 1. Заголовок текста

Аз и буки шрифтовой науки

Шрифт это средство выражения дизайна, а не какого-то банального чтения.

Результат данного примера показан на рис. 3.

Сдвиг текста относительно исходного положения

Рис. 3. Сдвиг текста относительно исходного положения

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

Наведите курсор на кнопку, чтобы увидеть анимацию в действии. Время движения кнопки определяется свойством transition.

Для относительно позиционированных элементов работает свойство z-index , которое управляет положением элементов по оси Z. Если требуется задать наложение элементов относительно друг друга, то в стилях достаточно указать position со значением relative без смещения самого элемента. В примере 3 выводятся картинки, при наведении на них курсора они увеличиваются в размерах и отображаются поверх остальных изображений.

Пример 3. Использование z-index

Заголовок Заголовок Заголовок

Создайте веб-страницу, показанную на рис. 1. Линии по бокам заголовка должны тянуться, независимо от размера окна браузера.

.block < background: #795548; padding: 20px; color: #fff; font-family: Arial, sans-serif; >.block h2 < color: #feea3b; overflow: hidden; font-weight: normal; margin-top: 0; text-align: center; >.block h2::before, .block h2::after < content: ''; background: #feea3b; display: inline-block; height: 1px; position: relative; vertical-align: middle; width: 50%; >.block h2::before < right: 10px; margin-left: -50%; >.block h2::after

Апперцепция

Гештальт, как бы это ни казалось парадоксальным, понимает культурный комплекс, к тому же этот вопрос касается чего-то слишком общего.

Создайте веб-страницу, как показано на рис. 1.

См. также

  • bottom
  • left
  • position
  • position в CSS
  • relative и absolute
  • right
  • top
  • z-index
  • Абсолютное позиционирование
  • Добавление тени
  • Использование в вёрстке
  • Липкое позиционирование
  • Нормальное позиционирование
  • Переходы в CSS
  • Подробнее о позиционировании
  • Поток
  • Свойства позиционирования
  • Фиксированное позиционирование

Источник

Оцените статью