CSS scaleX() — масштаб по горизонталі


Опис

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

Функція scaleX() приймає один числовий аргумент - scaleX(x), де x вказує масштаб, до якого слід змінити ширину елемента. Значення менше 1 стискає елемент, а значення більше 1 розтягує його. Значення 1 залишить ширину елемента без змін.

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

/* Збільшимо ширину елемента вдвічі */
.example-element {
  transform: scaleX(2);
}

У даному прикладі елемент з класом "example-element" буде вдвічі ширшим від початкового стану, створюючи ефект збільшення горизонтальної простору.

автор: Bond

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

автор: NagarD

Порада

При використанні функції scaleX() слід враховувати відносну ширину батьківського контейнера елемента, оскільки вона може впливати на кінцевий результат.

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

Використовуйте значення менше 1 для стиснення елемента і значення більше 1 для розтягнення. Значення 1 залишить ширину елемента без змін.

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

При використанні функції scaleX() зверніть увагу на можливі впливи на інші властивості елемента, такі як позиціонування або розташування тексту.

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

Ця функція може бути комбінована з іншими функціями трансформації, такими як rotate() або translate(), для досягнення більш складних ефектів трансформації. Наприклад, ви можете поєднувати scaleX() з rotate(), щоб створити ефект обертання елемента під час збільшення або зменшення його ширини. Використовуючи функцію scaleX() разом з іншими можливостями CSS, ви можете створювати захоплюючі та креативні дизайнерські рішення для вашого веб-сайту.

автор: Bond

Синтаксис

scaleX(<value>);

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

<number>

Числове значення, яке представляє масштабування по горизонтальній осі. Значення менше 1 зменшує ширину елемента, а значення більше 1 збільшує ширину елемента.

автор: Bond

Значення без задання: none

Переглядачі

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

Приклади

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

У цьому прикладі є два прямокутники (box), один з яких має нормальний масштаб (scaleX(1)), а другий зменшений наполовину (scaleX(0.5)) по осі X.

HTML

<div id="description">
  <h2>Приклад 2: елементи з різними масштабами по осі X</h2>
  <p>Перший прямокутник має нормальний масштаб (1), а другий прямокутник зменшений наполовину (0.5) по осі X.</p>
</div>
<div id="result">
  <div class="box"></div>
  <div class="box"></div>
</div>

CSS

#description {
  background-color: #ddd;
  padding: 20px;
  font-family: Arial, sans-serif;
}

#result {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 200px;
}

.box {
  width: 200px;
  height: 100px;
  margin-right: 20px;
  display: inline-block;
}

.box:nth-child(1) {
  background-color: #f1c40f;
  transform: scaleX(1);
}

.box:nth-child(2) {
  background-color: #3498db;
  transform: scaleX(0.5);
}
автор: Bond

У цьому прикладі є прямокутник (#box), який збільшує свою ширину вдвічі (scaleX(2)) після того, як користувач наведе курсор на нього. Це досягається за допомогою CSS-властивості transform та анімації (transition).

HTML

<div id="description">
  <h2>Приклад 1: зміна елемента після наведення курсору</h2>
  <p>Наведіть курсор на жовтий прямокутник, щоб побачити, як змінюється його ширина.</p>
</div>
<div id="result">
  <div id="box"></div>
</div>

CSS

#description {
  background-color: #ddd;
  padding: 20px;
  font-family: Arial, sans-serif;
}

#result {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 200px;
}

#box {
  width: 200px;
  height: 100px;
  background-color: #f1c40f;
  transition: transform 0.3s ease;
}

#box:hover {
  transform: scaleX(2);
}
автор: Bond

Верхній ряд — та сама плитка за різних значень: сусідні плитки не зсуваються, бо розкладка про масштаб не знає. Далі — різниця між типовою точкою відліку й transform-origin: left, віддзеркалення через scaleX(-1) і підкреслення, яке при наведенні виїжджає зліва.

HTML

<p class="head">Масштаб не рухає сусідів — рамка показує справжнє місце в потоці:</p>
<div class="row">
    <span class="slot"><span class="tile s05">0.5</span></span>
    <span class="slot"><span class="tile s1">1</span></span>
    <span class="slot"><span class="tile s2">2</span></span>
    <span class="slot"><span class="tile s3">-1</span></span>
</div>

<p class="head">Точка відліку: типовий центр проти transform-origin: left</p>
<div class="row col">
    <span class="slot"><span class="tile grow">scaleX(2), центр</span></span>
    <span class="slot"><span class="tile grow left">scaleX(2), left</span></span>
</div>

<p class="head">Наведіть на перше — підкреслення виїжджає зліва (scaleX від 0 до 1);
    друге показує кінцевий стан одразу:</p>
<p>
    <a class="link" href="#">наведіть на мене</a>
    &nbsp;&nbsp;
    <a class="link shown" href="#">кінцевий стан, scaleX(1)</a>
</p>

<p class="head">Пастка: scaleX(2px) — оголошення відкинуто цілком:</p>
<div class="row">
    <span class="slot"><span class="tile bad">scaleX(2px)</span></span>
</div>

CSS

.head {
    margin: 18px 0 8px;
    color: #5a6472;
    font-size: .9em;
}

.row {
    display: flex;
    gap: 26px;
    align-items: center;
}

.row.col {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding-left: 90px;
}

.slot {
    display: inline-block;
    border: 1px dashed #b9c6d8;
}

.tile {
    display: inline-block;
    padding: 8px 10px;
    background: #2f6fd0;
    color: #fff;
    font: 600 13px/1 ui-monospace, monospace;
}

.s05 { transform: scaleX(0.5); }
.s1 { transform: scaleX(1); }
.s2 { transform: scaleX(2); }
.s3 { transform: scaleX(-1); }

.grow { transform: scaleX(2); }
.left { transform-origin: left; }

.bad {
    transform: scaleX(2px);
    background: #d64545;
}

.link {
    position: relative;
    display: inline-block;
    color: #1b4f9c;
    text-decoration: none;
    font-weight: 600;
}

.link::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -3px;
    height: 3px;
    background: #1b4f9c;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s ease;
}

.link:hover::after,
.link.shown::after {
    transform: scaleX(1);
}
автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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