CSS-свойство `border-radius`
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
border-radius — это CSS-свойство CSS, представляющее собой сокращённую запись. Оно скругляет углы внешней границы рамки элемента. Можно задать один радиус, чтобы получить круглые углы, или два радиуса — чтобы получить эллиптические углы.
Попробуйте
border-radius: 30px;
border-radius: 25% 10%;
border-radius: 10% 30% 50% 70%;
border-radius: 10% / 50%;
border-radius: 10px 100px / 120px;
border-radius: 50% 20% / 10% 40%;
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
This is a box with rounded corners.
</div>
</section>
#example-element {
width: 80%;
height: 80%;
display: flex;
justify-content: center;
flex-direction: column;
background-color: #5b6dcd;
color: white;
padding: 10px;
}
Составные свойства
Это свойство является сокращённой записью следующих свойств CSS:
Синтаксис
/* The syntax of the first radius allows one to four values */ /* Radius is set for all 4 sides */ border-radius: 10px; /* top-left-and-bottom-right | top-right-and-bottom-left */ border-radius: 10px 5%; /* top-left | top-right-and-bottom-left | bottom-right */ border-radius: 2px 4px 2px; /* top-left | top-right | bottom-right | bottom-left */ border-radius: 1px 0 3px 4px; /* The syntax of the second radius allows one to four values */ /* (first radius values) / radius */ border-radius: 10px / 20px; /* (first radius values) / top-left-and-bottom-right | top-right-and-bottom-left */ border-radius: 10px 5% / 20px 30px; /* (first radius values) / top-left | top-right-and-bottom-left | bottom-right */ border-radius: 10px 5px 2em / 20px 25px 30%; /* (first radius values) / top-left | top-right | bottom-right | bottom-left */ border-radius: 10px 5% / 20px 25em 30px 35em; /* Global values */ border-radius: inherit; border-radius: initial; border-radius: revert; border-radius: revert-layer; border-radius: unset;
Свойство border-radius задаётся следующим образом:
- одним, двумя, тремя или четырьмя значениями
<length>или<percentage>. Это позволяет задать единый радиус для углов. - за которыми может следовать «/» и одно, два, три или четыре значения
<length>или<percentage>. Это позволяет задать дополнительный радиус и получить эллиптические углы.
Значения
| radius | ![]() | Значение <length> или <percentage>, определяющее радиус рамки для каждого угла. Используется только в синтаксисе с одним значением. |
| top-left-and-bottom-right | | Значение <length> или <percentage>, определяющее радиус рамки для верхнего левого и нижнего правого углов блока элемента. Используется только в синтаксисе с двумя значениями. |
| top-right-and-bottom-left | | Значение <length> или <percentage>, определяющее радиус рамки для верхнего правого и нижнего левого углов блока элемента. Используется только в синтаксисе с двумя или тремя значениями. |
| top-left | ![]() | Значение <length> или <percentage>, определяющее радиус рамки для верхнего левого угла блока элемента. Используется только в синтаксисе с тремя или четырьмя значениями. |
| top-right | ![]() | Значение <length> или <percentage>, определяющее радиус рамки для верхнего правого угла блока элемента. Используется только в синтаксисе с четырьмя значениями. |
| bottom-right | ![]() | Значение <length> или <percentage>, определяющее радиус рамки для нижнего правого угла блока элемента. Используется только в синтаксисе с тремя или четырьмя значениями. |
| bottom-left | ![]() | Значение <length> или <percentage>, определяющее радиус рамки для нижнего левого угла блока элемента. Используется только в синтаксисе с четырьмя значениями. |
-
<length> - Задаёт размер радиуса окружности или длину большой и малой полуосей эллипса с помощью значений длины. Отрицательные значения недопустимы.
-
<percentage> - Задаёт размер радиуса окружности или длину большой и малой полуосей эллипса с помощью процентных значений. Проценты для горизонтальной оси отсчитываются от ширины блока, а для вертикальной оси — от его высоты. Отрицательные значения недопустимы.
Например:
border-radius: 1em / 5em; /* It is equivalent to: */ border-top-left-radius: 1em 5em; border-top-right-radius: 1em 5em; border-bottom-right-radius: 1em 5em; border-bottom-left-radius: 1em 5em;
border-radius: 4px 3px 6px / 2px 4px; /* It is equivalent to: */ border-top-left-radius: 4px 2px; border-top-right-radius: 3px 4px; border-bottom-right-radius: 6px 2px; border-bottom-left-radius: 3px 4px;
Описание
Радиус применяется ко всему background, даже если у элемента нет рамки; точное положение обрезки определяется свойством background-clip.
Свойство border-radius не применяется к элементам таблиц, если значение свойства border-collapse равно collapse.
Примечание: Как и для любого сокращённого свойства, отдельные подчинённые свойства не могут наследовать значения, например в border-radius:0 0 inherit inherit, поскольку это частично переопределило бы существующие определения. Вместо этого необходимо использовать отдельные свойства с полными именами.
Формальное определение
| Исходное значение | как у каждого из свойств, входящих в сокращённую запись: |
|---|---|
| Применяется к | всем элементам; однако пользовательские агенты не обязаны применять его к элементам <code>table</code> и <code>inline-table</code>, если значение свойства border-collapse равно <code>collapse</code>. Поведение для внутренних элементов таблиц пока не определено. |
| Наследуется | нет |
| Проценты | относительно соответствующего размера рамки элемента |
| Вычисленное значение | как у каждого из свойств, входящих в сокращённую запись: |
| Тип анимации | как у каждого из свойств, входящих в сокращённую запись: |
Формальный синтаксис
border-radius = <length-percentage [0,∞]>{1,4} [ / <length-percentage [0,∞]>{1,4} ]? <length-percentage> = <length> | <percentage>
Примеры
Сравнение стилей рамок
В следующем примере показаны семь элементов <pre>, каждый из которых демонстрирует сочетания стилей border и border-radius. Стили, применённые к каждому элементу <pre>, указаны в его содержимом, чтобы вы могли увидеть объявления CSS, необходимые для создания соответствующего стиля рамки:
<pre id="example-1"> border: solid 10px; border-radius: 10px 40px 40px 10px; </pre> <pre id="example-2"> border: groove 1em red; border-radius: 2em; </pre> <pre id="example-3"> background: gold; border: ridge gold; border-radius: 13em / 3em; </pre> <pre id="example-4"> border: none; border-radius: 40px 10px; background: gold; </pre> <pre id="example-5"> border: none; border-radius: 50%; background: burlywood; </pre> <pre id="example-6"> border: dotted; border-width: 10px 4px; border-radius: 10px 40px; </pre> <pre id="example-7"> border: dashed; border-width: 2px 4px; border-radius: 40px; </pre>
pre {
margin: 20px;
padding: 20px;
width: 80%;
height: 50px;
}
pre#example-1 {
border: solid 10px;
border-radius: 10px 40px 40px 10px;
}
pre#example-2 {
border: groove 1em red;
border-radius: 2em;
}
pre#example-3 {
background: gold;
border: ridge gold;
border-radius: 13em / 3em;
}
pre#example-4 {
border: none;
border-radius: 40px 10px;
background: gold;
}
pre#example-5 {
border: none;
border-radius: 50%;
background: burlywood;
}
pre#example-6 {
border: dotted;
border-width: 10px 4px;
border-radius: 10px 40px;
}
pre#example-7 {
border: dashed;
border-width: 2px 4px;
border-radius: 40px;
}
Использование corner-shape вместе с border-radius
Если для угла блока задано ненулевое значение 0 border-radius, можно использовать свойство corner-shape (или одно из его полных и сокращённых свойств), чтобы придать углу произвольную форму, например срез, выемку или суперэллипс. В этом примере показано использование corner-shape.
HTML
Разметка этого примера содержит один элемент <div>.
<div></div>
CSS
Мы задаём блоку базовые стили, которые здесь опущены для краткости. Также применяем box-shadow, border-radius со значением 0 20% 50px 30% и corner-shape со значением superellipse(0.5) bevel notch squircle.
body {
font-family: "Helvetica", "Arial", sans-serif;
width: 240px;
margin: 20px auto;
}
div {
width: 100%;
height: 180px;
display: flex;
justify-content: center;
align-items: center;
background-color: green;
background-image: linear-gradient(
to bottom,
rgb(255 255 255 / 0),
rgb(255 255 255 / 0.5)
);
}
div {
box-shadow: 1px 1px 3px gray;
border-radius: 0 20% 50px 30%;
corner-shape: superellipse(0.5) bevel notch squircle;
}
Результат
Отображаемый результат выглядит так:
Обратите внимание: к верхнему левому углу не применяется форма, поскольку для него задано значение border-radius, равное 0.
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
border-radius |
4Chrome игнорируетborder-radius для элементов <select>, если значение -webkit-appearance не переопределено подходящим образом.1
|
12
12
|
4До Firefox 50 стили рамки со скруглёнными углами (сborder-radius) всегда отображались так, как если бы border-style имело значение solid. Это исправлено в Firefox 50.Для соответствия стандарту CSS3 в Firefox 4 обработка значений <percentage> была изменена согласно спецификации. С помощью border-radius: 50%; можно задать эллиптическую рамку для элемента произвольного размера. В Firefox 4 скруглённые углы также обрезают содержимое и изображения, если не задано свойство overflow: visible.1–12
|
10.5До Opera 11.60 у заменяемых элементов сborder-radius углы не скруглялись. |
5Safari игнорируетborder-radius для элементов <select>, если значение -webkit-appearance не переопределено подходящим образом.3
|
18 |
4До Firefox 50 стили рамки со скруглёнными углами (сborder-radius) всегда отображались так, как если бы border-style имело значение solid. Это исправлено в Firefox 50.4–14
|
11 |
4.2Safari игнорируетborder-radius для элементов <select>, если значение -webkit-appearance не переопределено подходящим образом.1
|
1.0 |
≤4.4
2
|
4.2Safari игнорируетborder-radius для элементов <select>, если значение -webkit-appearance не переопределено подходящим образом.1
|
4_values_for_4_corners |
4 |
12 |
4 |
10.5 |
5 |
18 |
4 |
11 |
4.2 |
1.0 |
4.4 |
4.2 |
elliptical_borders |
1До Chrome 4 синтаксис со слешем/ не поддерживался. Если указаны два значения, эллиптическая рамка рисуется на всех четырёх углах. -webkit-border-radius: 40px 10px; эквивалентно border-radius: 40px / 10px;. |
12 |
4 |
10.5 |
3До Safari 5 синтаксис со слешем/ не поддерживался. Если указаны два значения, эллиптическая рамка рисуется на всех четырёх углах. -webkit-border-radius: 40px 10px; эквивалентно border-radius: 40px / 10px;. |
18 |
4 |
11 |
4.2 |
1.0 |
4.4 |
4.2 |
percentages |
8 |
12 |
4До Firefox 4 значения<percentage> реализованы нестандартным образом. Оба радиуса — горизонтальный и вертикальный — отсчитывались относительно ширины рамки. |
11.5До Opera 11.5 реализация значений<percentage> работала с ошибками. |
5.1 |
18 |
4 |
11.5 |
5 |
1.0 |
4.4 |
5 |
См. также
- Связанные со свойством border-radius свойства CSS:
border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-start-start-radius,border-start-end-radius,border-end-start-radius,border-end-end-radius
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/border-radius




