② Радиальный градиент
Продолжим изучение темы CSS3 - градиент. Если пропустили прошлую статью, то вот ссылка на неё:
Радиальный градиент отличается от линейного тем, что цвета выходят из одной точки (центра градиента) и равномерно распределяются наружу, рисуя форму круга или эллипса.
CSS
background: radial-gradient(форма градиента / размер / позиция центра, первый цвет, второй цвет и т.д.);
Форма градиента определяется ключевыми словами circle
или ellipse
. Если форма не задана, по умолчанию радиальный градиент принимает форму эллипса.
CSS
div { height: 200px; background: radial-gradient(white, #FFA9A1); }
Позиция центра задаётся с помощью ключевых слов, используемых в свойстве background-position
, с добавлением приставки at
. Если позиция центра не задана, используется значение по умолчанию at center
.
CSS
div { height: 200px; background: radial-gradient(at top, #FEFFFF, #A7CECC); }
С помощью пары значений, указанных в единицах длины %
, em
или px
, можно управлять размером эллипсообразного градиента. Первое значение задает ширину эллипса, второе — высоту.
CSS
div { height: 200px; background: radial-gradient(40% 50%, #FAECD5, #CAE4D8); }
Размер градиента задаётся с помощью ключевых слов. Значение по умолчанию farthest-corner
(к дальнему углу).
Значение / Описание
closest-side
- Размер градиента рассчитывается из расстояния до любой ближней стороны блока дляcircle
или до ближних сторон поX
и поУ
дляellipse
.farthest-side
- Размер рассчитывается из расстояния до дальних сторон.closest-corner
- Размер рассчитывается из расстояния до ближних углов.farthest-corner
- Размер рассчитывается из расстояния до дальних углов.
CSS
div { height: 200px; background: radial-gradient(circle farthest-corner at 100px 50px, #FBF2EB, #352A3B); }
С помощью радиального градиента можно создавать реалистичные объёмные фигуры, такие как мячи, кнопки.
Мяч
CSS
div { width: 200px; height: 200px; border-radius: 50%; margin: 0 auto; background: radial-gradient(circle at 65% 15%, aqua, darkblue); }
Кнопка
HTML
<div class="wrap"><div class="button"></div></div>
CSS
.wrap { height: 200px; padding: 50px 0; background: #cccccc; } .button { width: 100px; height: 100px; border-radius: 50%; margin: 0 auto; background: radial-gradient(farthest-side ellipse at top left, white, #aaaaaa); box-shadow: 5px 10px 20px rgba(0,0,0,0.3), -5px -10px 20px rgba(255,255,255,0.5); }
Почтовая марка
Используя в градиентах прозрачный цвет, можно создавать вот такие эффекты.
HTML
<div class="container"> <div class="wrap"> <img src="https://html5book.ru/wp-content/uploads/2015/10/flowers-by-barbara-florchik-2.jpg"> </div> </div>
CSS
.container { background: #B7D1D8; padding: 25px; } .wrap { background: radial-gradient(transparent, transparent 4px, white 4px,white); padding: 10px; width: 300px; height: 220px; background-size: 20px 20px; background-position: -10px -10px; /*обрезаем узор по краю*/ margin: 0 auto; } img { width: 100%; }
Продолжение в следующей статье!