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 пікселів вгору від його вихідного положення.
Загальний опис
автор: NagarD
- Порада
-
Функцію
автор: Bondtranslate()можна використовувати разом з іншими властивостями CSS, наприклад, з трансформаціями (transform), переходами (transition) або анімаціями (animation). - Порада
-
Якщо потрібно виконати зміщення тільки по одній вісі (горизонталі або вертикалі), можна встановити значення
автор: Bond0для другого аргументу. Наприклад,translate(20px, 0)зсуне елемент тільки вправо на 20 пікселів. - Порада
-
Ця функція дозволяє легко контролювати позицію елементів і може бути дуже корисною для створення захоплюючих анімацій та рухових ефектів на сторінці. Ви можете експериментувати з різними значеннями, щоб досягти потрібного вам зсуву.
автор: Bond - Нотатка
-
Функція
автор: Bondtranslate()зазвичай використовується для анімації руху елементів на сторінці, створення паралакс-ефектів, вирівнювання або розташування елементів в заданому місці.
Синтаксис
translate(<length-percentage>, <length-percentage>?)
Функція translate може отримувати єдине значення:
-
<length> -
Величина зсуву в пікселях/відсотках/відносних одиницях
автор: Bond
| Значення без задання: | translate(0, 0) |
|---|
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 1 | 3.5 | 3.1 | 10.5 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 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%);
}
Блок зсувається на 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;
}
Обидва блоки мають 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%);
}
Коментарі
Коментарів ще немає — будьте першим!