
CSS :: Функция radial-gradient()
Функция radial-gradient() (от англ. radial gradient – радиальный градиент) используется в качестве значения в свойствах background и background-image и добавляет радиальный градиент к фону изображения.
Синтаксис
radial-gradient(
[[circle || <радиус>] [at <позиция центра>]?, |
[ellipse || [<радиус> | <проценты>]{2}] [at <позиция центра>]?, |
[[circle | ellipse] || <ключевые слова>] [at <позиция центра>]?, |
at <позиция центра>,]?
<цвет> <стоп-позиция>?,
[<стоп-позиция>?, <цвет> <стоп-позиция>?]#
)
Значения
- circle – задает радиальный градиент круглой формы.
- ellipse – задает радиальный градиент эллиптической формы. Значение используется по умолчанию.
- <радиус> – радиус градиента в любых доступных в CSS единицах измерения (смотреть). Отрицательные значения не допускаются. Для эллипса также доступны проценты. При этом одно значение указывает радиус круга, два значения — радиус эллипса по оси X и его же радиус по оси Y. Если радиус не будет указан явно, градиент заполнит весь фон элемента.
-
<ключевые слова> – в случае использования ключевых слов circle и
ellipse их размеры либо не указываются вообще, либо через пробел используются следующие ключевые слова:
- closest-side – для круга радиус будет равен расстоянию от центра круга до ближайшей стороны элемента. Для эллипса радиус a будет равен расстоянию от центра до ближайшей левой или правой стороны, а для радиуса b – до ближайшей верхней или нижней стороны элемента.
- farthest-side – для круга радиус будет равен расстоянию от центра круга до самой удаленной стороны элемента. Для эллипса радиус a будет равен расстоянию от центра до более удаленной левой или правой стороны, а для радиуса b – до более удаленной верхней или нижней стороны элемента.
- closest-corner – для круга радиус будет равен расстоянию от центра круга до вершины ближайшего угла элемента. Для эллипса радиусы вычисляются на основании расстояния от его центра до вершины ближайшего угла элемента.
- farthest-corner – данное значение используется по умолчанию в случае, когда ключевое слово не указано. Для круга радиус будет равен расстоянию от центра круга до вершины самого дальнего угла элемента; для эллипса радиусы вычисляются на основании расстояния от его центра до самого дальнего угла элемента.
-
<позиция центра> – координаты x и y
центра градиента относительно вершины верхнего левого угла элемента. В качестве числовых аргументов могут использоваться любые доступные в
CSS единицы измерения, а также проценты (смотреть).
Вместо координат допустимо использование следующих ключевых слов:
- at left top || at top left – в левом верхнем углу (0% 0%);
- at center top || at top center || at top – по центру вверху (50% 0%);
- at right top || at top right – в правом верхнем углу (100% 0%);
- at right center || at center right || at right – справа по центру (100% 50%);
- at right bottom || at bottom right – в правом нижнем углу (100% 100%);
- at center bottom || at bottom center || at bottom – по центру внизу (50% 100%);
- at left bottom || at bottom left – в левом нижнем углу (0% 100%);
- at left center || at center left || at left – слева по центру (0% 50%);
- at center center || at center – в центре элемента (50% 50%).
- <цвет> – цвет в любой доступной в CSS цветовой модели (смотреть).
- <стоп-позиция> – координаты точки на градиентной прямой, по достижении которой браузер начнет создавать переход от текущего цвета к следующему в списке. При этом, если два соседних цвета в списке идентичны, то их стоп-позиции разрешается указывать через пробел после требуемого цвета. Например, вместо radial-gradient(15px 10px at 50% 50%, red 10%, red 35%, blue 100%) можно сокращенно записать radial-gradient(15px 10px at 50% 50%, red 10% 35%, blue 100%). Более того, можно вообще не указывать стоп-позиции или указывать только некоторые из них. В таких случаях браузер будет равномерно распределять позиции всех цветов, попадающих в соответствующие промежутки.
Таким образом, функция radial-gradient() в общем случае в качестве аргументов принимает радиусы a и b эллипса, координаты x и y центра эллипса относительно вершины верхнего левого угла элемента и значения цветов с указанием через пробел их горизонтальной позиции относительно центра эллипса.
Ссылки
Официальный сайт W3C: https://drafts.csswg.org/css-images-3/#radial-gradients
Статья на Mozilla Firefox: https://developer.mozilla.org/ru/docs/Web/CSS/radial-gradient
Примеры

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Пример №1</title> <style> p{ width: 500px; height: 300px; padding: 10px; margin: 4em; border: solid 3px black; } .background_1{ background: radial-gradient(150px 100px at 50% 50%, #ffffff 2px, #000000 30px, #dddddd 70px); } .background_2{ background: radial-gradient(150px 100px at 50% 50%, #ffffff, #000000 100px, #dddddd 200px); } .background_3{ background: radial-gradient(550px 200px at 30% 50px, #ffffff 20%, #000000 70%, #dddddd); } .background_4{ background: radial-gradient(300px 250px at 40% 100px, #ffffff, #000000, #dddddd); } </style> </head> <body> <p class="background_1"> 150px 100px at 50% 50%, #ffffff 2px, #000000 30px, #dddddd 70px </p> <p class="background_2"> 150px 100px at 50% 50%, #ffffff, #000000 100px, #dddddd 200px </p> <p class="background_3"> 550px 200px at 30% 50px, #ffffff 20%, #000000 70%, #dddddd </p> <p class="background_4"> 300px 250px at 40% 100px, #ffffff, #000000, #dddddd </p> </body> </html>
Пример №1

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Пример №2</title> <style> p{ width: 500px; height: 150px; padding: 10px; margin: 1.5em; border: solid 3px black; } .background_1{ background: radial-gradient(circle closest-side at 30% 40%, #ffffff, #000000); } .background_2{ background: radial-gradient(ellipse closest-side at 30% 40%, #ffffff, #000000); } .background_3{ background: radial-gradient(circle closest-corner at 30% 40%, #ffffff, #000000); } .background_4{ background: radial-gradient(ellipse closest-corner at 30% 40%, #ffffff, #000000); } .background_5{ background: radial-gradient(circle farthest-corner at 30% 40%, #ffffff, #000000); } .background_6{ background: radial-gradient(ellipse farthest-corner at 30% 40%, #ffffff, #000000); } </style> </head> <body> <p class="background_1"></p> <p class="background_2"></p> <p class="background_3"></p> <p class="background_4"></p> <p class="background_5"></p> <p class="background_6"></p> </body> </html>
Пример №2