CSS ellipse() — еліпс для clip-path


Опис

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

При використанні функції ellipse() необхідно коректно встановити значення для напіввеликої та напівменшої осей. Це допомагає досягти бажаної форми еліпса з відповідними пропорціями. Наприклад, вказавши значення ellipse(200px 100px), ви створите еліпс з напіввеликою осю 200 пікселів та напівменшою осю 100 пікселів.

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

.ellipse-container {
  width: 200px;
  height: 100px;
  background-color: #3498db;
  clip-path: ellipse(50% 50%);
}

У даному прикладі ми створюємо контейнер з еліптичною формою за допомогою функції ellipse(). Задаємо розміри контейнера, встановлюємо фоновий колір та еліптичну форму.

автор: Bond

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

автор: NagarD

Порада

Переконайтеся, що значення semi-major-axis та semi-minor-axis відповідають бажаному розміру та пропорціям еліпса.

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

Використовуйте функцію ellipse() разом з властивістю shape-outside для визначення форми текстових блоків навколо елементів з формою еліпса.

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

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

автор: Bond

Синтаксис

ellipse(<semi-major-axis> <semi-minor-axis>)

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

<semi-major-axis>

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

автор: Bond

<semi-minor-axis>

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

автор: Bond

Переглядачі

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

Приклади

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

Цей приклад демонструє використання CSS-функції circle() для створення еліпсу, який змінює свій вигляд при наведенні курсору.

HTML

<div id="description">
  <h2>Приклад 1</h2>
  <p>Цей приклад демонструє використання CSS-функції circle() для створення еліпсу, який змінює свій вигляд при наведенні курсору.</p>
</div>

<div id="result">
  <div class="container">
    <div class="circle"></div>
  </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;
}

.container {
  text-align: center;
}

.circle {
  width: 150px;
  height: 150px;
  background-color: teal;
  clip-path: ellipse(20px 50px);
  transition: clip-path 0.3s ease;
}

.circle:hover {
  clip-path: ellipse(25px 75px);
}
автор: Bond

У цьому прикладі ми використовуємо CSS-функцію ellipse() для створення вирізаного шматка тексту, що надає йому цікавий вигляд.

HTML

<div id="description">
  <h2>Вирізаний шматок тексту</h2>
  <p>У цьому прикладі ми використовуємо CSS-функцію ellipse() для створення вирізаного шматка тексту, що надає йому цікавий вигляд.</p>
</div>

<div id="result">
  <div class="container">
    <div class="excerpt"></div>
    <p class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque.</p>
    <p class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut perspiciatis unde omnis iste natus error sit voluptatem.</p>
    <p class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut perspiciatis unde omnis iste natus error sit voluptatem.</p>
  </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;
}

.text {
  font-size: 14px;
  line-height: 1.5;
  margin-bottom: 15px;
}

.excerpt {
  float: left;
  width: 150px;
  height: 150px;
  margin-right: 10px;
  clip-path: ellipse(50px 75px);
  shape-outside: ellipse(50px 75px);
  background-color: green;
}
автор: Bond

Три однакові блоки 240×140 з тим самим градієнтом. Різниця лише в аргументах ellipse(): вписаний еліпс, коло з однакових радіусів і еліпс, зміщений до нижнього краю.

HTML

<div id="description">
  <h2>ellipse(): радіуси й центр</h2>
  <p>Розмір блоків однаковий, змінюється тільки значення clip-path.</p>
</div>

<div id="result">
  <figure>
    <div class="box a"></div>
    <figcaption>ellipse(50% 50%)</figcaption>
  </figure>
  <figure>
    <div class="box b"></div>
    <figcaption>ellipse(70px 70px) — коло</figcaption>
  </figure>
  <figure>
    <div class="box c"></div>
    <figcaption>ellipse(50% 50% at 50% 100%)</figcaption>
  </figure>
</div>

CSS

#result {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

figure {
  margin: 0;
  text-align: center;
  font: 13px/1.4 sans-serif;
}

figcaption {
  margin-top: 8px;
}

.box {
  width: 240px;
  height: 140px;
  background: linear-gradient(135deg, #4c6ef5, #f76707);
}

.a {
  clip-path: ellipse(50% 50%);
}

.b {
  clip-path: ellipse(70px 70px);
}

.c {
  clip-path: ellipse(50% 50% at 50% 100%);
}
автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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