CSS translate() — зсув елемента


Опис

translate() дозволяє зміщувати елементи на сторінці, створювати анімації та рухові ефекти. Ця функція дозволяє контролювати розташування елементів відносно їх початкової позиції. Вона приймає два аргументи: зсув по горизонталі (вісь X) та зсув по вертикалі (вісь Y).

Приклади використання

Зсув по горизонталі та вертикалі:

Для зсуву елемента на 20 пікселів вправо та 10 пікселів вниз від його початкового положення, використовуйте:

transform: translate(20px, 10px);

Зсув тільки по горизонталі:

Щоб зсунути елемент на 50% його ширини вправо від початкового положення, використовуйте:

transform: translate(50%, 0);

Це може бути корисно для горизонтального центрування елемента.

Зсув тільки по вертикалі:

Для зсуву елемента на 2 розміри шрифту (em) вгору від його початкового положення, використовуйте:

transform: translate(0, -2em);

Це може бути використано для вирівнювання елементів по вертикалі.

Зворотний зсув:

Якщо вам потрібно повернути елемент до його початкового положення, використовуйте від'ємні значення для зсуву. Наприклад:

transform: translate(-50px, -50px);

Цей код зсуне елемент на 50 пікселів вліво та 50 пікселів вгору від його вихідного положення.

автор: Bond

Загальний опис

автор: NagarD

Порада

Функцію translate() можна використовувати разом з іншими властивостями CSS, наприклад, з трансформаціями (transform), переходами (transition) або анімаціями (animation).

автор: Bond
Порада

Якщо потрібно виконати зміщення тільки по одній вісі (горизонталі або вертикалі), можна встановити значення 0 для другого аргументу. Наприклад, translate(20px, 0) зсуне елемент тільки вправо на 20 пікселів.

автор: Bond
Порада

Ця функція дозволяє легко контролювати позицію елементів і може бути дуже корисною для створення захоплюючих анімацій та рухових ефектів на сторінці. Ви можете експериментувати з різними значеннями, щоб досягти потрібного вам зсуву.

автор: Bond
Нотатка

Функція translate() зазвичай використовується для анімації руху елементів на сторінці, створення паралакс-ефектів, вирівнювання або розташування елементів в заданому місці.

автор: Bond

Синтаксис

translate(<length-percentage>, <length-percentage>?)

Функція translate може отримувати єдине значення:

<length>

Величина зсуву в пікселях/відсотках/відносних одиницях

автор: Bond

Значення без задання: translate(0, 0)

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 3.5 3.1 10.5 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
2 18 4 3.2

Приклади

+ запропонувати свій приклад у пісочниці

При наведенні курсору на блок, він переміщується.

HTML

<div id="description">
  <p>При наведенні курсору на блок, він переміщується вгору і ліворуч за допомогою функції translate().</p>
</div>

<div id="result">
  <div class="block"></div>
</div>

CSS

#description {
  font-style: italic;
  text-align: center;
  line-height: 1.5;
  margin-bottom: 50px;
  padding: 12px 16px;
  background-color: #f7f7f7;
  border: 1px solid #ccc;
}

#result {
  height: 200px;
  background-color: #F2F2F2;
  position: relative;
}

.block {
  width: 100px;
  height: 100px;
  background-color: #FFC107;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(0, 0);
  transition: transform 0.3s ease;
}

#result:hover .block {
  transform: translate(-50%, -50%);
}
автор: Bond

Блок зсувається на 40 пікселів вниз.

HTML

<div id="description">
  <p>Блок зсувається на 40 пікселів вниз використовуючи функцію translate(). Обидва блоки використовують однакові розміри для порівняння.</p>
</div>

<div id="result">
  <div class="block"></div>
  <div class="comparison-block"></div>
</div>

CSS

#description {
  font-style: italic;
  text-align: center;
  line-height: 1.5;
  margin-bottom: 50px;
  padding: 12px 16px;
  background-color: #f7f7f7;
  border: 1px solid #ccc;
}

#result {
  height: 200px;
  background-color: #F2F2F2;
  display: flex;
  justify-content: space-around;
}

.block {
  width: 80px;
  height: 80px;
  background-color: #FFC107;
  transform: translate(5px, 40px);
}

.comparison-block {
  width: 80px;
  height: 80px;
  background-color: #FF0000;
}
автор: Bond

Обидва блоки мають top: 50%; left: 50%. Лівий на цьому й зупиняється — у центр потрапляє його верхній лівий кут. Правий додає translate(-50%, -50%), тобто зсувається на половину ВЛАСНОГО розміру, і стає точно по центру.

HTML

<div id="description">
  <h2>Чому translate(-50%, -50%) центрує</h2>
  <p>Лінії позначають середину контейнера. Відсотки у top/left рахуються від батька, а у translate() — від самого елемента.</p>
</div>

<div id="result">
  <div class="stage">
    <div class="box a">top/left: 50%</div>
  </div>

  <div class="stage">
    <div class="box b">+ translate(-50%, -50%)</div>
  </div>
</div>

CSS

#description {
  font-style: italic;
  line-height: 1.5;
  margin-bottom: 30px;
  padding: 12px 16px;
  background-color: #f7f7f7;
  border: 1px solid #ccc;
}

#result {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
}

.stage {
  position: relative;
  width: 260px;
  height: 200px;
  border: 1px dashed #999;
  background-color: #f2f2f2;
  background-image:
    linear-gradient(#c00, #c00),
    linear-gradient(#c00, #c00);
  background-size: 100% 1px, 1px 100%;
  background-position: center center;
  background-repeat: no-repeat;
}

.box {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 120px;
  height: 60px;
  box-sizing: border-box;
  padding: 8px;
  background: #2f6fed;
  color: #fff;
  font: 13px/1.3 Arial, sans-serif;
}

.b {
  transform: translate(-50%, -50%);
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід