CSS circle() — круг для clip-path
Опис
Функція circle() в CSS є засобом для створення елементів у формі круга з використанням clip-path. Вона дозволяє легко створювати округлі елементи зі зворотною вирізаною зовнішньою формою, що додає привабливості та естетичного вигляду. Цей підхід особливо корисний для створення круглих кнопок, фігур з нестандартною формою та багато чого іншого.
Щоб використовувати функцію circle() з clip-path, ви можете визначити круглу форму обрізання для елемента. Ось приклад:
.circle-element {
width: 100px;
height: 100px;
background-color: #4CAF50;
clip-path: circle(50%);
}
У цьому прикладі ми створюємо елемент з круглою формою обрізання використовуючи функцію circle() та clip-path. Задаємо розміри елемента, фоновий колір та встановлюємо круглу форму обрізання, вказавши радіус через функцію circle().
Загальний опис
автор: NagarD
- Порада
-
Використовуйте функцію
автор: Bondcircle()для створення елементів з круглою формою, таких як кнопки, області виділення, маркери тощо. - Порада
-
Комбінуйте функцію
автор: Bondcircle()з іншими CSS властивостями, наприкладbackground-color,border,box-shadowтощо, щоб створювати більш складені ефекти та стилі. - Порада
-
При використанні аргументів
автор: Bondat positionтаcolorможна досягти додаткових ефектів та налаштувань для кругових елементів.
Синтаксис
circle(<shape-size>? [at <position>] [color <color>]?)
Функція circle може отримувати 3 значень:
-
<shape-size> -
Вказується розмір кругової форми. Можливі значення в пікселях (
автор: Bondpx), відсотках (%) або інших одиницях виміру. -
at <position> -
Вказується позиція кругової форми. Можливі значення:
автор: Bondcenter,top,right,bottom,left або комбінації цих ключових слів. -
color <color> -
Вказується колір кругової форми. Можливі значення: іменовані кольори, шістнадцяткові значення (
автор: Bond#RRGGBBабо#RGB) або функції кольору, наприкладrgb(),rgba(),hsl()абоhsla().
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 37 | 54 | 10.1 | 24 | 79 |
| Переглядач | ||||
|---|---|---|---|---|
| 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: 180px;
height: 150px;
background-color: teal;
clip-path: circle(50px);
transition: clip-path 0.3s ease;
}
.circle:hover {
clip-path: circle(60px at right center);
}
У цьому прикладі ми використовуємо CSS-функцію circle() для створення вирізаного шматка тексту, що надає йому цікавий вигляд.
HTML
<div id="description">
<h2>Вирізаний шматок тексту</h2>
<p>У цьому прикладі ми використовуємо CSS-функцію circle() для створення вирізаного шматка тексту, що надає йому цікавий вигляд.</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 {
/* background-color: lightgray;
color: white;
display: inline;
padding: 2px 6px;
border-radius: circle();
clip-path: inset(0); */
float: left;
width: 100px;
height: 100px;
margin-right: 10px;
clip-path: circle(50px);
shape-outside: circle(50%);
background-color: green;
}
Усі блоки — 300×100 з однаковим градієнтом. circle(50%) не дає круга: відсоток рахується від діагоналі. circle(closest-side) дає. Праві два блоки показують, що clip-path зрізає тінь, а border-radius — ні.
HTML
<div id="description">
<h2>circle(): відсоток, ключові слова й доля тіні</h2>
<p>Розміри блоків однакові скрізь — 300×100 пікселів.</p>
</div>
<div id="result">
<figure>
<div class="box p50"></div>
<figcaption>clip-path: circle(50%)</figcaption>
</figure>
<figure>
<div class="box closest"></div>
<figcaption>clip-path: circle(closest-side)</figcaption>
</figure>
<figure>
<div class="box clipped"></div>
<figcaption>clip-path + box-shadow — тіні немає</figcaption>
</figure>
<figure>
<div class="box rounded"></div>
<figcaption>border-radius + box-shadow — тінь є</figcaption>
</figure>
</div>
CSS
#result {
display: flex;
gap: 24px;
flex-wrap: wrap;
}
figure {
margin: 0;
width: 300px;
text-align: center;
font: 12px/1.4 sans-serif;
}
figcaption {
margin-top: 10px;
}
.box {
width: 300px;
height: 100px;
background: linear-gradient(135deg, #1098ad, #f76707);
}
.p50 {
clip-path: circle(50%);
}
.closest {
clip-path: circle(closest-side);
}
.clipped {
clip-path: circle(closest-side);
box-shadow: 0 8px 16px rgb(0 0 0 / 0.6);
}
.rounded {
width: 100px;
height: 100px;
margin: 0 auto;
border-radius: 50%;
box-shadow: 0 8px 16px rgb(0 0 0 / 0.6);
}
Коментарі
Коментарів ще немає — будьте першим!