CSS border-radius — заокруглення кутів


Властивість border-radius - універсальна властивість і дозволяє одночасно задати значення округлень всіх кутів.

Властивість border-radius

Якщо вказано тільки одне значення для властивості, цей радіус буде застосований до всіх 4 кутів.

Тим не менш, ви можете вказати кожен кут окремо. Ось правила:

Кількість значень Результат
1 Всі чотири кути закруглені однаково.
2 Перше значення відноситься до верхнього лівого і нижнього правого кута, а друге значення відноситься до верхнього правого кута і лівого нижнього кута.
3 Перше значення відноситься до верхнього лівого, друге значення - до верхнього правого і нижнього лівого, і третє значення відноситься до нижнього правого кута.
4 Перше значення застосовується до верхнього лівого, друге значення застосовується до верхнього правого, третє значення відноситься до нижнього правого, і четверте значення відноситься до нижнього лівого кута.

У разі застосування відсотків, відлік ведеться відносно ширини блоку.

Щоб встановити різні значення для горизонтальної та вертикальної частини, треба розділити два значення за допомогою “/”. Значення з лівої сторони, випливають на горизонтальні частини кутів, правої частини - вертикальні частини. Також можна записувати відразу чотири значення(по два з кожної сторони), для кожного кута окремо.

border-radius може використовуватися разом із властивістю border(чи з будь-якими іншими властивостями стилізуючими межі елементу), але це не обов’язково. Наприклад, якщо для елементу встановлене фонове зображення або колір, він буде так само заокруглюватися, навіть якщо властивість border не була задана.

Важливо, що треба записувати значення саме у такому порядку: border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius.

Крива кожного кутку визначається двома значеннями: якщо одне(або два однакових) - кут заокруглюється до круга, два різних - еліпс.

border-radius не застосовується до елементів таблиці, якщо для border-collapse встановлене значення collapse.

автор: Svitlana

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

автор: NagarD

Нотатка

Запис:

border-radius: 2em 1em 4em / 0.5em 3em;

Еквівалентний:

border-top-left-radius: 2em 0.5em;
border-top-right-radius: 1em 3em;
border-bottom-right-radius: 4em 0.5em;
border-bottom-left-radius: 1em 3em;
автор: Svitlana

Синтаксис

border-radius: 1-4 length|% / 1-4 length|%|initial|inherit;

Властивість border-radius може отримувати 4 значень:

length

Визначає форму кутів. Значення без задання дорівнює 0

автор: Svitlana

%

Визначає форму кутів у % відносно ширини блоку

автор: Svitlana

initial

Встановлює властивість у значення без задання

автор: Svitlana

inherit

Вказує на спадковість властивості від свого батьківського елемента

автор: Svitlana

Значення без задання: 0
Наслідує: Ні
Анімується: Так
JavaScript синтаксис: object.style.borderRadius="25px"

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
4 4 5 10.5 12 9
відсотки 4.0 4.0 5.0 10.5 9.0
еліптичні куточки 1.0 3.5 3.0 10.5 9.0
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
≤4.4 18 4 4.2
відсотки 2.1 4.0 5.0
еліптичні куточки 2.1 3.5 3.0

Приклади

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

Інструмент

Заокруглює кути повзунками, зокрема еліптично.

Генератор border-radius — окремою сторінкою, з поясненням пасток.

Одне значення border-radius заокруглює всі чотири кути однаково.

HTML

<div>Усі чотири кути заокруглені на 25 пікселів.</div>

CSS

div {
    border: 2px solid;
    border-radius: 25px;
    padding: 12px;
}
автор: Svitlana

Динамічний приклад

HTML

<div class="box">

<p>У цьому прикладі, Ви можете змінювати значення для властивості <strong>border-radius</strong>.</p>

<p>Вона встановлює, ступінь заокруглення кутів кордону елемента. В цьому прикладі, Ви можете визначити цей ступінь, для кожного з кутів окремо (в такому порядку: верхній лівий кут, верхній правий, нижній правий, нижній лівий).</p>

<strong>border-radius: </strong>
<input type="number" class="input" id="num1" value="24" min="0">px 
<input type="number" class="input" id="num2" value="24" min="0">px 
<input type="number" class="input" id="num3" value="24" min="0">px 
<input type="number" class="input" id="num4" value="24" min="0">px 
<strong>;</strong>
  
</div>

CSS

* {
  box-sizing: border-box;
}

body {
  font-family: monospace;
  font-size: 16px;
  line-height: 1.45;
  height: 100vh;
  padding: 16px;
}

.box {
  background-color: #f7f7f7;
  padding: 16px;
  border: 24px solid #444;
	border-radius: 24px;
}

.input {
  margin-bottom: 36px;
  width: 75px;
}

#select {
  position: relative;
  top: -4px;
  width: 100px;
}

JS

document.querySelectorAll('.input').forEach((el) => el.addEventListener('change', function () {
  var num1 = document.querySelector('#num1').value;
  var num2 = document.querySelector('#num2').value;
  var num3 = document.querySelector('#num3').value;
  var num4 = document.querySelector('#num4').value;
  document.querySelectorAll('.box').forEach((n) => n.style.setProperty('border-radius', num1 + 'px ' + num2 + 'px ' + num3 + 'px ' + num4 + 'px'));
}));
автор: Svitlana

Демонстрація роботи властивості

HTML

<div class="info">
	<p>За допомогою властивості <code>border-radius</code> ми можемо заокруглити кути для кордону елемента.</p>
	<p>Кордон першого блоку не має заокруглених кутів, два інші вже мають: <em>24px</em> i <em>12px 16px 0px 50px</em> відовідно.</p>
</div>

<div class="wrapper">
	<div class="block"></div>
	<div class="block one"></div>
	<div class="block two"></div>
</div>

CSS

* {
	box-sizing: border-box;
}

body {
	font-family: monospace;
	font-size: 17px;
	line-height: 1.45;
}

.info {
	padding: 4px 16px 8px 16px;
}

em {
	font-weight: 700;
}

code {
	font-weight: 700;
	color: #444;
	border-bottom: 2px solid #666;
}

.wrapper {
	display: flex;
	justify-content: space-around;
}

.block {
	width: 150px;
	height: 150px;
	background-color: gold;
	border: 16px solid #666;
}

.block.one {
	border-radius: 24px;
}

.block.two {
	border-radius: 12px 16px 0px 50px;
}
автор: Svitlana

Скруглена картка з кольоровою шапкою: без overflow: hidden кути дитини стирчать за радіус.

HTML

<div class="card">
    <div class="head">Без overflow: hidden</div>
    <p>Кути шапки квадратні й перекривають округлення картки.</p>
</div>

<div class="card cut">
    <div class="head">З overflow: hidden</div>
    <p>Шапка обрізана рівно по радіусу картки.</p>
</div>

CSS

.card {
    width: 260px;
    margin-bottom: 16px;
    border: 2px solid #2b6cb0;
    border-radius: 18px;
    background: #f4f7fb;
}

.cut {
    overflow: hidden;
}

.head {
    padding: 10px;
    background: #2b6cb0;
    color: #fff;
}

.card p {
    padding: 0 10px 10px;
}
автор: NagarD

Демонстрація роботи властивості

HTML

<div class="block block-1">
  <code>border-radius: 16px;</code>
</div>
<div class="block block-2">
  <code>border-radius: 4px 25px;</code>
</div>
<div class="block block-3">
  <code>border-radius: 16px 0 50px 80%;</code>
</div>
<div class="block block-4">
  <code>border-radius: 12px / 40px;</code>
</div>
<div class="block block-5">
  <code>border-radius: 16px 10px 4px 50px / 50px 16px 4px 20%;</code>
</div>

CSS

.block {
  width: 450px;
  height: 150px;
  background-color: #ccc;
  border: 2px solid #666;
  margin-bottom: 16px;
  line-height: 146px;
  box-sizing: border-box;
  text-align: center;
  font-family: monospace;
  color: #222;
  font-size: 13px;
}

.block-1 {
  border-radius: 16px;
}
.block-2 {
  border-radius: 4px 25px;
}
.block-3 {
  border-radius: 16px 0 50px 80%;
}
.block-4 {
  border-radius: 12px / 40px;
}
.block-5 {
  border-radius: 16px 10px 4px 50px / 50px 16px 4px 20%;
}
автор: Svitlana

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

HTML

<div class="block">
	<code>border-radius: 0 36px;</code>
</div>

CSS

.block {
	border: 4px solid #666;
	width: 250px;
	height: 250px;
	text-align: center;
	padding-top: 105px;
	box-sizing: border-box;
	border-radius: 0 36px;
}
автор: Svitlana

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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