Spec-Zone.ru › CSS

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:

  • border-top-left-radius
  • border-top-right-radius
  • border-bottom-right-radius
  • border-bottom-left-radius

Синтаксис

/* 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 A light blue rectangle with a light gray border. All 4 corners are rounded. Значение <length> или <percentage>, определяющее радиус рамки для каждого угла. Используется только в синтаксисе с одним значением.
top-left-and-bottom-right A light blue rectangle with a light gray border. The 2 corners on the top left and the bottom right have are rounded. Значение <length> или <percentage>, определяющее радиус рамки для верхнего левого и нижнего правого углов блока элемента. Используется только в синтаксисе с двумя значениями.
top-right-and-bottom-left A light blue rectangle with a light gray border. The 2 corners on the top right and the bottom left are rounded. Значение <length> или <percentage>, определяющее радиус рамки для верхнего правого и нижнего левого углов блока элемента. Используется только в синтаксисе с двумя или тремя значениями.
top-left A light blue rectangle with a light gray border. The corner on the top left is rounded. Значение <length> или <percentage>, определяющее радиус рамки для верхнего левого угла блока элемента. Используется только в синтаксисе с тремя или четырьмя значениями.
top-right A light blue rectangle with a light gray border. The corner on the top right is rounded. Значение <length> или <percentage>, определяющее радиус рамки для верхнего правого угла блока элемента. Используется только в синтаксисе с четырьмя значениями.
bottom-right A light blue rectangle with a light gray border. The bottom right corner is rounded. Значение <length> или <percentage>, определяющее радиус рамки для нижнего правого угла блока элемента. Используется только в синтаксисе с тремя или четырьмя значениями.
bottom-left A light blue rectangle with a light gray border. The bottom left corner is rounded. Значение <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, поскольку это частично переопределило бы существующие определения. Вместо этого необходимо использовать отдельные свойства с полными именами.

Формальное определение

Исходное значение как у каждого из свойств, входящих в сокращённую запись:
  • border-top-left-radius
  • border-top-right-radius
  • border-bottom-right-radius
  • border-bottom-left-radius
Применяется к всем элементам; однако пользовательские агенты не обязаны применять его к элементам <code>table</code> и <code>inline-table</code>, если значение свойства border-collapse равно <code>collapse</code>. Поведение для внутренних элементов таблиц пока не определено.
Наследуется нет
Проценты относительно соответствующего размера рамки элемента
Вычисленное значение как у каждого из свойств, входящих в сокращённую запись:
  • border-top-left-radius
  • border-top-right-radius
  • border-bottom-right-radius
  • border-bottom-left-radius
Тип анимации как у каждого из свойств, входящих в сокращённую запись:
  • border-top-left-radius
  • border-top-right-radius
  • border-bottom-right-radius
  • border-bottom-left-radius

Формальный синтаксис

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.

Спецификации

Спецификация
Модуль фонов и рамок CSS, уровень 3
# propdef-border-radius

Совместимость с браузерами

Компьютеры Мобильные устройства
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API