CSS inset() — прямокутна обрізка для clip-path


Опис

Функція inset() в CSS є потужним інструментом для налаштування відстані між границями елемента та його контейнера. Ця функція дозволяє вам точно задавати положення границь елемента з урахуванням його верхньої, правої, нижньої та лівої сторін.

Для використання функції inset() потрібно передати значення в довжині або відсотках. Параметри функції вказують відстані від відповідних границь (верхньої, правої, нижньої, лівої). Ви можете вказати відстань від будь-якої з границь, і при цьому функція використовуватиме значення auto для невказаних границь.

Приклад використання функції inset():

.element {
  inset: 10px 20px 10px 20px;
}

У даному прикладі ми використовуємо функцію inset() для встановлення відстані від границь елемента з класом .element. Параметри функції вказують, що відстань від верхньої границі буде 10 пікселів, від правої границі - 20 пікселів, від нижньої границі - 10 пікселів і від лівої границі - 20 пікселів.

Інші приклади значень inset():

  • inset(10px): Відстань від границь елемента 10 пікселів на всіх сторонах.
  • inset(10px 20px): Відстань від верхньої та нижньої границь - 10 пікселів, від правої та лівої границь - 20 пікселів.
автор: Bond

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

автор: NagarD

Порада

Використовуйте позитивні значення для встановлення відстані від границь елемента до його контейнера.

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

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

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

Використовуйте auto для автоматичного визначення відстані від границь.

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

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

автор: Bond

Синтаксис

inset( <length-percentage> [ <length-percentage> | auto ]? )

Функція inset може отримувати 2 значень:

<length-percentage>

Значення в довжині або відсотках, яке вказує відстань від границі елемента. Може бути позитивним або від'ємним числом.

автор: Bond

auto

Автоматичне визначення відстані від границі. Значення auto можна використовувати для автоматичного розташування границі елемента.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
37 54 10.1 24 79
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
37 37 54 10.3

Приклади

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

Наведіть курсор на квадрат, щоб побачити зміну.

HTML

<div id="description">
  <h2>Приклад використання функції inset()</h2>
  <p>Наведіть курсор на квадрат, щоб побачити зміну.</p>
</div>
<div id="result">
  <div class="square"></div>
</div>

CSS

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

#result {
  display: flex;
  justify-content: center;
}

.square {
  background-color: yellow;
  width: 150px;
  height: 150px;
  clip-path: inset(100px 150px round 20px);
  transition: clip-path 0.5s ease;
}

.square:hover {
  clip-path: inset(150px 100px round 5px);
}
автор: Bond

Один з елементів використовує функцію inset() для встановлення відстані від границь елемента відносно його контейнера.

HTML

<div id="description">
  <h2>Приклад 2: Елементи з різними границями</h2>
  <p>Один з елементів використовує функцію inset() для встановлення відстані від границь елемента відносно його контейнера.</p>
</div>

<div id="result">
  <div class="image-container">
    <div class="box"></div>
    <div class="box withinset"></div>
  </div>
</div>

CSS

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

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

.image-container {
  display: flex;
}

.box {
  width: 200px;
  height: 200px;
  margin-right: 20px;
  background-color: red;
}

.withinset {
  clip-path: inset(4rem 20% round 1rem 2rem 3rem 4rem);
}
автор: Bond

Один і той самий блок із чотирма різними значеннями inset(). Останній випадок — типова пастка: inset(60%) дає 120% по вертикалі, видима область стає нульовою, і елемент зникає цілком.

HTML

<div id="description">
  <h2>Що робить inset() у clip-path</h2>
  <p>Блоки однакові — 160×160 з градієнтом. Пунктир показує, де блок був до обрізання.</p>
</div>

<div id="result">
  <div class="demo">
    <div class="frame"><div class="box"></div></div>
    <p>без clip-path</p>
  </div>
  <div class="demo">
    <div class="frame"><div class="box b2"></div></div>
    <p>inset(20px)</p>
  </div>
  <div class="demo">
    <div class="frame"><div class="box b3"></div></div>
    <p>inset(10% 25% round 24px)</p>
  </div>
  <div class="demo">
    <div class="frame"><div class="box b4"></div></div>
    <p>inset(60%) — порожньо</p>
  </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;
}

.demo p {
  margin: 8px 0 0;
  font: 13px/1.4 monospace;
  text-align: center;
  color: #555;
}

.frame {
  width: 160px;
  height: 160px;
  border: 1px dashed #999;
}

.box {
  width: 160px;
  height: 160px;
  background-image: linear-gradient(135deg, #2f6fed, #16a34a);
}

.b2 { clip-path: inset(20px); }
.b3 { clip-path: inset(10% 25% round 24px); }
.b4 { clip-path: inset(60%); }
автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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