Свойство position
Свойство position позволяет сдвигать элемент со своего обычного места. Цель этой главы – не только напомнить, как оно работает, но и разобрать ряд частых заблуждений и граблей.
position: static
Статическое позиционирование производится по умолчанию, в том случае, если свойство position не указано.
Его можно также явно указать через CSS-свойство:
position: static;
Такая запись встречается редко и используется для переопределения других значений position .
Здесь и далее, для примеров мы будем использовать следующий документ:
Без позиционирования ("position: static"). Заголовок А тут - всякий разный текст.
. В две строки!
В этом документе сейчас все элементы отпозиционированы статически, то есть никак.
Элемент с position: static ещё называют не позиционированным.
position: relative
Относительное позиционирование сдвигает элемент относительно его обычного положения.
Для того, чтобы применить относительное позиционирование, необходимо указать элементу CSS-свойство position: relative и координаты left/right/top/bottom .
Этот стиль сдвинет элемент на 10 пикселей относительно обычной позиции по вертикали:
position: relative; top: 10px;
h2 Заголовок сдвинут на 10px вниз. Заголовок А тут - всякий разный текст.
. В две строки!
Координаты
Для сдвига можно использовать координаты:
- top – сдвиг от «обычной» верхней границы
- bottom – сдвиг от нижней границы
- left – сдвиг слева
- right – сдвиг справа
Не будут работать одновременно указанные top и bottom , left и right . Нужно использовать только одну границу из каждой пары.
Возможны отрицательные координаты и координаты, использующие другие единицы измерения. Например, left: 10% сдвинет элемент на 10% его ширины вправо, а left: -10% – влево. При этом часть элемента может оказаться за границей окна:
h2 Заголовок сдвинут на 10% влево. Заголовок А тут - всякий разный текст.
. В две строки!
Свойства left/top не будут работать для position:static . Если их всё же поставить, браузер их проигнорирует. Эти свойства предназначены для работы только с позиционированными элементами.
position: absolute
position: absolute;
Абсолютное позиционирование делает две вещи:
- Элемент исчезает с того места, где он должен быть и позиционируется заново. Остальные элементы, располагаются так, как будто этого элемента никогда не было.
- Координаты top/bottom/left/right для нового местоположения отсчитываются от ближайшего позиционированного родителя, т.е. родителя с позиционированием, отличным от static . Если такого родителя нет – то относительно документа.
- Ширина элемента с position: absolute устанавливается по содержимому. Детали алгоритма вычисления ширины описаны в стандарте.
- Элемент получает display:block , который перекрывает почти все возможные display (см. Relationships between „display“, „position“, and „float“).
Например, отпозиционируем заголовок в правом-верхнем углу документа:
h2 Заголовок в правом-верхнем углу документа. Заголовок А тут - всякий разный текст.
. В две строки!
Важное отличие от relative : так как элемент удаляется со своего обычного места, то элементы под ним сдвигаются, занимая освободившееся пространство. Это видно в примере выше: строки идут одна за другой.
Так как при position:absolute размер блока устанавливается по содержимому, то широкий Заголовок «съёжился» до прямоугольника в углу.
Иногда бывает нужно поменять элементу position на absolute , но так, чтобы элементы вокруг не сдвигались. Как правило, это делают, меняя соседей – добавляют margin/padding или вставляют в документ пустой элемент с такими же размерами.
Одновременное указание left/right , top/bottom
В абсолютно позиционированном элементе можно одновременно задавать противоположные границы.
Браузер растянет такой элемент до границ.
div 10px от границ
Относительный и абсолютный путь к файлу
В данном уроке мы объясним новичкам, что такое абсолютный и относительный путь к файлу, а также в каком случае какой из них лучше использовать. Если вы уже знакомы с данной темой, вы можете переходить к следующему уроку.
Итак, начнем с определения самого термина «путь»:
Путь (англ. path) — набор символов, показывающий расположение файла в файловой системе, адрес каталога.
Википедия
Если говорить о сайтах, то путь — это то же, что и ссылка. Ссылки могут быть абсолютными и относительными. Рассмотрим оба варианта более подробно.
Что такое абсолютный путь к файлу
Абсолютный адрес ссылки на файл включает в себя протокол (например, http:// ), имя сайта в Сети, подкаталог (или несколько подкаталогов), название файла. Пример того, как выглядит абсолютный URL:
Абсолютный путь можно использовать в CSS. Например, чтобы задать рисунок в качестве фона, вы можете взять абсолютный URL к файлу с изображением И указать его в таблице стилей:
background-image: url(http://www.example.com/img/bg.png);
Абсолютная ссылка всегда будет указывать на одно и то же место, независимо от того, где расположен содержащий ее документ (в нашем случае таблица стилей). Чего не скажешь об относительной ссылке.
Что такое относительный путь к файлу
С относительным адресом всё намного интереснее — он может отсчитываться как от корня сайта, так и от текущего документа. Корневой относительный путь — это путь, который указывает на расположение файла относительно корневого каталога сайта. В этом случае адрес не содержит ни протокола, ни имени домена, и начинается со знака слэша / , который указывает на корневую папку. Выглядит этот адрес так:
background-image: url(/img/bg.png);
Как легко определить корневой относительный адрес? Просто возьмите абсолютную ссылку и уберите из нее протокол и название домена, оставив слэш и все символы, которые идут дальше.
Относительный путь к файлу от документа — это путь к файлу относительно текущего документа. Такой адрес зависит от расположения файла, в котором он записан. Так, когда относительная ссылка указывается в таблице стилей, она рассчитывает путь к файлу, отталкиваясь от таблицы стилей, а не от текущей веб-страницы либо корневой папки. Приведем несколько примеров.
Пример I
Если наша таблица стилей style.css и файл с фоновым рисунком bg.png находятся в одной папке (не обязательно корневой), то относительный путь от таблицы до рисунка будет выглядеть так:
background-image: url(bg.png); /* вы просто пишете имя файла */
Пример II

Если таблица стилей находится в корне, а рисунок — в папке img , относительная ссылка будет таковой:
background-image: url(img/bg.png); /* слэш в начале не нужен */
Пример III

Если таблица стилей находится в папке, а рисунок соседствует с этой папкой, то относительный путь будет таким:
background-image: url(../bg.png); /* две точки — подняться на один уровень */
Пример IV

Если таблица стилей находится в двух папках, а рисунок соседствует с первой папкой, то относительный путь будет следующий:
background-image: url(../../bg.png); /* поднимаемся на два уровня */
Две точки и слэш в начале относительного пути означают подъем на один уровень вверх. В зависимости от количества уровней (каталогов), на которые нужно подняться, необходимо прописать нужное количество точек со слэшом. К примеру, если таблица стилей лежит не в двух, а в четырех папках, запись, соответственно, будет следующей:
background-image: url(../../../../bg.png);
В том случае, когда рисунок спрятан в папку img , а таблица стилей — в папку css , вам понадобится выйти из папки css и зайти в папку img . Вот так:
background-image: url(../img/bg.png);
Если папок несколько, необходимо также прописать их. Изменим предыдущий пример: представим, что в папке img есть еще одна папка backgrounds , в которой лежит наш рисунок. Относительный путь будет таким:
background-image: url(../img/backgrounds/bg.png);
Какой путь лучше использовать
Абсолютный адрес ссылки понадобится использовать, если файл, на который вы ссылаетесь, находится на другом сайте. В пределах одного сайта абсолютный путь практически не используется (хоть он и будет работать). Это связано с несколькими моментами: во-первых, такие ссылки могут быть весьма громоздкими, а во-вторых, если имя домена изменится, то возникнет проблема — все ссылки будут вести на старый домен, что может повлечь за собой множество ошибок и битых ссылок.
Корневой относительный путь будет работать на веб-сервере, но он бесполезен при разработке на локальном компьютере. Но преимущество этого типа ссылок в том, что вы можете перемещать свою таблицу стилей в любую папку сайта и не бояться, что адреса фоновых изображений станут нерабочими.
Относительный путь от документа — наилучший вариант при веб-разработке на локальной машине без использования сервера. В браузере вы сможете нормально просматривать веб-страницы, хранящиеся на вашем компьютере, и адреса файлов будут работать. Они будут работать и на живом сайте, но с одним условием — если не перемещать таблицу стилей в другое место (иначе придется корректировать пути).
Попробуйте потренироваться в использовании относительных путей как на локальном компьютере, так и на веб-сервере. Понимание того, как это работает, непременно пригодится вам в любом проекте.
Далее в учебнике: свойство background-repeat — управление повтором фонового изображения.
Функции CSS-трансформации
Трансформации к элементу применяются при помощи свойства transform . А значением для этого свойства являются функции трансформации.
Пример
Скопировать ссылку «Пример» Скопировано
.element transform: translateX(120px);>.element transform: translateX(120px); >
Как понять
Скопировать ссылку «Как понять» Скопировано
Часто бывает необходимо каким-то образом трансформировать визуальное представление элемента (масштабировать, повернуть, переместить) и при этом никак не затронуть соседние элементы в документе. Для подобных преобразований используется свойство transform . В качестве значения выступают различные функции трансформации: rotate , translate , scale , skew и другие.
Функции трансформации можно условно разбить на несколько групп.
Функции перемещения
Скопировать ссылку «Функции перемещения» Скопировано
translate ( X , Y )
Скопировать ссылку «translate(X, Y)» Скопировано
Функция используется для смещения элемента вверх-вниз или влево-вправо. В целом, ту же работу выполняют CSS-свойства top , right , bottom , left — например, для абсолютно ( position : absolute ) или относительно ( position : relative ) спозиционированных элементов. Но есть ряд важных отличий: элемент позиционируется относительно соответствующих сторон родителя. То есть left : 20px сместит элемент на 20 пикселей относительно левой границы родителя, а translate ( 20px ) сместит элемент вправо относительно того места, где тот находился до трансформации. В целом, позиционирование и translate прекрасно сочетаются друг с другом. Позиционирование лучше использовать для изначального расположения элемента на странице, а translate применять, если нужно добавить анимации движения.
Функция принимает два параметра: первый параметр отвечает за смещение вправо-влево, а второй параметр — вверх-вниз. Если передать только один параметр, тогда смещение будет только вправо-влево. Мы можем использовать любые единицы измерения расстояния из CSS, например, абсолютные 10px или относительные 50 % . Абсолютное значение используется «как есть»: элемент сместится на 10 пикселей. Относительное значение считается относительно размеров самого элемента. При указании 50 % элемент сместится на половину собственной ширины или высоты.
translate X ( X ) , translate Y ( Y ) , translate Z ( Z )
Скопировать ссылку «translateX(X), translateY(Y), translateZ(Z)» Скопировано
Когда нужно сместить элемент вдоль конкретной оси, можно применить соответствующие функции трансформации.
translate3d ( X , Y , Z )
Скопировать ссылку «translate3d(X, Y, Z)» Скопировано
Если нужно сместить элемент по всем трём осям, можно всё собрать в кучку и использовать эту функцию.
Функции масштабирования
Скопировать ссылку «Функции масштабирования» Скопировано
scale ( X , Y )
Скопировать ссылку «scale(X, Y)» Скопировано
Функция для масштабирования элемента. Значения X и Y — это положительные числа, либо 0. Если в функцию передать 0, то элемент не будет виден. Единица соответствует нормальному масштабу. Числа от 0 до 1 — это уменьшенный масштаб. Числа больше единицы — увеличенный масштаб. Например, чтобы визуально увеличить элемент в 2 раза, нужно написать transform : scale ( 2 ) .
В отличие от translate , один параметр в функции scale работает несколько иначе. scale ( 2 ) — это то же самое, что scale ( 2 , 2 ) , то есть одно число указывает на пропорциональное масштабирование по обеим осям одновременно.
scale X ( X ) , scale Y ( Y ) , scale Z ( Z )
Скопировать ссылку «scaleX(X), scaleY(Y), scaleZ(Z)» Скопировано
Используем, когда необходимо растягивать или сжимать элемент только по горизонтали, вертикали или третьей оси Z .
scale3d ( X , Y , Z )
Скопировать ссылку «scale3d(X, Y, Z)» Скопировано
Если нужно масштабировать элемент по всем трём осям, можно всё собрать в кучку и использовать эту функцию.
Функции наклона
Скопировать ссылку «Функции наклона» Скопировано
skew X ( X ) , skew Y ( Y )
Скопировать ссылку «skewX(X), skewY(Y)» Скопировано
Функции выполняют сдвиг одной стороны элемента относительно противолежащей. В результате элемент как бы наклоняется. Величина наклона зависит от положения точки применения трансформаций ( transform — origin ) и числа градусов, заданных в параметрах. skew X сдвигает верхнюю сторону элемента относительно нижней. skew Y — правую сторону относительно левой.
Функции поворота
Скопировать ссылку «Функции поворота» Скопировано
rotate X ( X ) , rotate Y ( Y ) , rotate Z ( Z )
Скопировать ссылку «rotateX(X), rotateY(Y), rotateZ(Z)» Скопировано
Кроме сдвига или наклона, элемент можно вращать. В функцию передаём единицы измерения углов ( deg , rad , turn ), например 45deg или 0 . 5turn . Обратите внимание, что обычное вращение элемента на странице — это вращение относительно оси Z . Если мы хотим вращать элемент относительно других осей, то нужно не забывать про перспективу. С ней повороты относительно X или Y будут выглядеть максимально естественно.
rotate ( Z )
Скопировать ссылку «rotate(Z)» Скопировано
Функция аналогична rotate Z ( Z ) . Чтобы не запоминать ось для типового вращения элемента, мы можем использовать просто слово rotate .
rotate3d ( X , Y , Z )
Скопировать ссылку «rotate3d(X, Y, Z)» Скопировано
Если нужно повернуть элемент по всем трём осям, можно всё собрать в кучку и использовать эту функцию.
Прочие функции
Скопировать ссылку «Прочие функции» Скопировано
matrix ( a , b , c , d , tx , ty )
Скопировать ссылку «matrix(a, b, c, d, tx, ty)» Скопировано
Выше мы упомянули несколько функций трансформации. Каждая выполняет какое-то одно небольшое действие. matrix ( ) — это функция, которой можно описать любую трансформацию в плоскости экрана. Она использует матричные преобразования и может заменить собой все вышеописанные функции. Но при этом она очень сложно читается. Например, глядя на функцию matrix ( 0 . 707107 , 0 . 707107 , — 0 . 707107 , 0 . 707107 , — 0 . 707107 , 34 . 6482 ) невозможно сразу точно определить, что она аналогична записи rotate ( 45deg ) translate ( 24px , 25px ) . Зачем же она нужна, такая сложная, если проще описать трансформации соответствующими функциями? Ну например, с её помощью можно писать сложные динамические анимации. Популярные JS-библиотеки для анимации «под капотом» используют как раз матричные преобразования, а не конкретные функции трансформации.
matrix3d ( a1 , b1 , c1 , d1 , a2 , b2 , c2 , d2 , a3 , b3 , c3 , d3 , a4 , b4 , c4 , d4 )
Скопировать ссылку «matrix3d(a1, b1, c1, d1, a2, b2, c2, d2, a3, b3, c3, d3, a4, b4, c4, d4)» Скопировано
Если нам нужно произвести трансформации в трёхмерном пространстве, а не в плоскости экрана, то нужно использовать эту функцию. Она ещё более сложна в понимании, и вряд ли кто-то вообще пишет её руками.
perspective ( Z )
Скопировать ссылку «perspective(Z)» Скопировано
Несмотря на то, что экран плоский, у нас всё равно есть возможность перемещать элемент вдоль оси Z . Она направлена перпендикулярно плоскости экрана в сторону пользователя. Если мы используем translate Z просто так, то никакого перемещения ближе или дальше мы не увидим. Чтобы было ощущение движения к нам или от нас, элемент должен становиться крупнее или мельче. Стул, который стоит рядом с нами, будет визуально крупнее, чем стул, стоящий в конце комнаты. Эта разница в размерах — следствие перспективы. Элемент на экране может вести себя подобно объектам в реальном мире и менять размер при перемещении к нам или от нас. Чтобы это заработало, нужно элементу задать свойство perspective . Это свойство необходимо применять при любых трансформациях, выходящих из плоскости экрана.
Функция perspective ( ) принимает один параметр — расстояние до точки схождения перспективы. Плоскость экрана принимается за начало координат. Например, запись perspective ( 500px ) означает, что точка схождения перспективы находится как бы на расстоянии 500 пикселей вглубь от плоскости экрана.
Подсказки
Скопировать ссылку «Подсказки» Скопировано
Можно применять сразу несколько функций трансформации:
.element transform: translate(20px, 20px) skew(20deg);>.element transform: translate(20px, 20px) skew(20deg); >
Если среди значений есть функция perspective ( ) , то она должна быть первой среди всех значений:
.element transform: translate3d(10px, 0, 20px) rotateY(3deg) perspective(500px);>.element transform: translate3d(10px, 0, 20px) rotateY(3deg) perspective(500px); >
.element transform: perspective(500px) translate3d(10px, 0, 20px) rotateY(3deg);>.element transform: perspective(500px) translate3d(10px, 0, 20px) rotateY(3deg); >
В последних версиях спецификации появились отдельные CSS-свойства для трансформаций. Это rotate , translate и scale . Если раньше мы писали комплексные трансформации, применяя несколько функций, то теперь каждую трансформацию можем описать отдельным свойством:
.transform-function transform: translate(100px, 100px) rotate(180deg) scale(2);> .individual-transforms translate: 100px 100px; rotate: 180deg; scale: 2;>.transform-function transform: translate(100px, 100px) rotate(180deg) scale(2); > .individual-transforms translate: 100px 100px; rotate: 180deg; scale: 2; >
Оба этих способа записи выполнят одни и те же трансформации, но у них есть ряд принципиальных отличий. Самое главное — используя индивидуальные свойства, мы можем создавать классы-модификаторы без опасения перекрыть всё свойство transform :
.element transform: translateX(20px) rotate(90deg);> .mid-scale scale: 1.5;>.element transform: translateX(20px) rotate(90deg); > .mid-scale scale: 1.5; >
В этом случае мы просто добавим масштабирование к элементу, какие бы свойства ни были ему заданы до этого. Подобный трюк не удастся провернуть со свойством transform :
.element transform: translateX(20px) rotate(90deg);> .mid-scale transform: scale(1.5);>.element transform: translateX(20px) rotate(90deg); > .mid-scale transform: scale(1.5); >
Добавив этот класс к элементу, мы просто рискуем перекрыть любое свойство transform , заданное до этого.
При использовании свойства transform результирующая трансформация вычисляется с учётом порядка функций. Например, transform : rotate ( 15deg ) translate X ( 100px ) translate Y ( 30px ) и transform : translate X ( 100px ) translate Y ( 30px ) rotate ( 15deg ) ; дадут разный конечный результат:
Если же мы используем индивидуальные свойства, результат будет одинаковым вне зависимости от порядка свойств:
Второй пример корректно работает во всех современных браузерах, для более старых версий проверяйте поддержку на Can I use.
На практике
Скопировать ссылку «На практике» Скопировано
Саша Патлух советует
Скопировать ссылку «Саша Патлух советует» Скопировано
Полезное знание при работе с функциями трансформации из JavaScript.
Если мы вычисляем значение функции трансформации, заданной в CSS, методом get Computed Style ( ) , получим матрицу преобразований. А в случае получения значения из свойства style по ключу — получим строку с описанием функции трансформации.
Допустим, на странице есть с такой трансформацией, описанной в CSS:
div transform: translate(200px);>div transform: translate(200px); >
Вычисление из JS методом get Computed Style ( ) вернёт значение matrix ( 1 , 0 , 0 , 1 , 200 , 0 ) :
const element = document.querySelector('div')console.log(getComputedStyle(element).transform)const element = document.querySelector('div') console.log(getComputedStyle(element).transform)
Но если стиль задан инлайном в HTML,
div style="transform: translate(200px);">div>
вы можете получить строку с более удобным для чтения и дальнейшей работы значением.
Код ниже вернёт строку translate ( 200px )
const element = document.querySelector('div')console.log(element.style.transform)const element = document.querySelector('div') console.log(element.style.transform)
Относительно того места как это
ГПК РФ Статья 169. Отложение разбирательства дела
1. Отложение разбирательства дела допускается в случаях, предусмотренных настоящим Кодексом, а также в случае, если суд признает невозможным рассмотрение дела в этом судебном заседании вследствие неявки кого-либо из участников процесса, возникновения у суда обоснованных сомнений относительно того, что в судебном заседании участвует лицо, прошедшее идентификацию или аутентификацию, либо относительно волеизъявления такого лица, предъявления встречного иска, необходимости представления или истребования дополнительных доказательств, привлечения к участию в деле других лиц, совершения иных процессуальных действий, возникновения технических неполадок при использовании технических средств ведения судебного заседания, в том числе систем видеоконференц-связи либо системы веб-конференции. Суд может отложить разбирательство дела на срок, не превышающий двух месяцев, по ходатайству сторон в случае их обращения за содействием к суду или посреднику, в том числе медиатору, судебному примирителю, а также в случае принятия сторонами предложения суда использовать примирительную процедуру.
(в ред. Федеральных законов от 27.07.2010 N 194-ФЗ, от 26.04.2013 N 66-ФЗ, от 26.07.2019 N 197-ФЗ, от 30.12.2021 N 440-ФЗ)
(см. текст в предыдущей редакции)
1.1. Суд обязан отложить на тридцать дней разбирательство дела, связанного со спором о ребенке, в случае поступления письменного уведомления от центрального органа, назначенного в Российской Федерации в целях обеспечения исполнения обязательств по международному договору Российской Федерации, о получении им заявления о незаконном перемещении этого ребенка в Российскую Федерацию или его удержании в Российской Федерации с приложением к уведомлению копии заявления, если ребенок не достиг возраста, по достижении которого указанный международный договор не подлежит применению в отношении этого ребенка.
(часть 1.1 введена Федеральным законом от 05.05.2014 N 126-ФЗ)
2. При отложении разбирательства дела назначается дата нового судебного заседания с учетом времени, необходимого для вызова участников процесса или истребования доказательств, о чем явившимся лицам объявляется под расписку. Неявившиеся лица и вновь привлекаемые к участию в процессе лица извещаются о времени и месте нового судебного заседания.
3. Разбирательство дела после его отложения возобновляется с того момента, с которого оно было отложено. Повторное рассмотрение доказательств, исследованных до отложения разбирательства дела, не производится.
(часть 3 в ред. Федерального закона от 29.07.2017 N 260-ФЗ)
(см. текст в предыдущей редакции)
4. Утратил силу. — Федеральный закон от 29.07.2017 N 260-ФЗ.
(см. текст в предыдущей редакции)
