CSS3 Градиенты


Эффект градиента

Градиенты CSS3 позволяют отображать плавные переходы между двумя или более заданными цветами.

Раньше для достижения этих эффектов приходилось использовать изображения. Однако, используя градиенты CSS3, можно сократить время загрузки и использование пропускной способности. Кроме того, элементы с градиентными эффектами лучше выглядят при увеличении, потому что градиент генерируется браузером.

CSS3 определяет два типа градиентов:

  • Линейные градиенты — направление вниз/вверх/влево/вправо/по диагонали
  • Радиальные градиенты — определяются их центром

Свойства, связанные с линейным градиентом:background-image。

Онлайн-инструмент для линейного градиента:Online Gradient Tool.


Поддержка браузеров

Числа в таблице показывают первую версию браузера, которая полностью поддерживает это свойство.

Свойство
background-image 1.0 4.0 1.0 1.0 3.5

Примечание:IE8 и более ранние версии браузеров IE не поддерживают это свойство.



Линейные градиенты CSS3

Чтобы создать линейный градиент, необходимо определить как минимум две цветовые остановки. Цветовые остановки — это цвета, между которыми вы хотите создать плавные переходы. Вы также можете задать начальную точку и направление (или угол).

Примеры линейных градиентов:

线性渐变

Синтаксис

background-image: linear-gradient(direction, color-stop1, color-stop2, ...);

Линейный градиент — сверху вниз (по умолчанию)

В следующем примере демонстрируется линейный градиент, начинающийся сверху. Он начинается с красного и постепенно переходит в синий:

Пример

Линейный градиент — сверху вниз:

#grad { background-image: linear-gradient(#e66465, #9198e5); }

Попробуйте сами »

Линейный градиент — слева направо

В следующем примере демонстрируется линейный градиент, начинающийся слева. Он начинается с красного и постепенно переходит в жёлтый:

Пример

Линейный градиент — слева направо:

#grad { height: 200px; background-image: linear-gradient(to right, red , yellow); }

Попробуйте сами »

Линейный градиент — диагональный

Вы можете создать диагональный градиент, указав горизонтальную и вертикальную начальные позиции.

В следующем примере демонстрируется линейный градиент, начинающийся с верхнего левого угла (и идущий к нижнему правому углу). Он начинается с красного и постепенно переходит в жёлтый:

Пример

Линейный градиент — из верхнего левого угла в нижний правый:

#grad { height: 200px; background-image: linear-gradient(to bottom right, red, yellow); }

Попробуйте сами »


Использование угла

Если вы хотите более точно управлять направлением градиента, можно задать угол вместо предопределённого направления (to bottom, to top, to right, to left, to bottom right и т. д.).

Синтаксис

background-image: linear-gradient(angle, color-stop1, color-stop2);

Угол — это угол между горизонтальной линией и линией градиента, отсчитываемый против часовой стрелки. Другими словами, 0deg создаст градиент снизу вверх, а 90deg — градиент слева направо.

Однако учтите, что многие браузеры (Chrome, Safari, Firefox и т. д.) используют старый стандарт, где 0deg создаст градиент слева направо, а 90deg — снизу вверх. Формула преобразования:90 - x = yгде x — стандартный угол, а y — нестандартный угол.

В следующем примере показано, как использовать углы в линейных градиентах:

Пример

Линейный градиент с заданным углом:

#grad { background-image: linear-gradient(-90deg, red, yellow); }

Попробуйте сами »


Использование нескольких цветовых остановок

В следующем примере показано, как задать несколько цветовых остановок:

Пример

Линейный градиент сверху вниз с несколькими цветовыми остановками:

#grad { background-image: linear-gradient(red, yellow, green); }

Попробуйте сами »

В следующем примере показано, как создать линейный градиент с радужными цветами и текстом:

Пример

#grad { /*Стандартный синтаксис*/ background-image: linear-gradient(to right, red,orange,yellow,green,blue,indigo,violet); }

Попробуйте сами »


Использование прозрачности (transparent)

Градиенты CSS3 также поддерживают прозрачность, которую можно использовать для создания эффектов затухания.

Чтобы добавить прозрачность, мы используем функцию rgba() для определения цветовых остановок. Последний параметр в функции rgba() может быть значением от 0 до 1, которое определяет непрозрачность цвета: 0 означает полностью прозрачный, 1 означает полностью непрозрачный.

В следующем примере показан линейный градиент, начинающийся слева. Он начинается полностью прозрачным и постепенно переходит в полностью непрозрачный красный:

Пример

Линейный градиент слева направо с прозрачностью:

#grad { background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); }

Попробуйте сами »


Повторяющиеся линейные градиенты

Функция repeating-linear-gradient() используется для повторяющихся линейных градиентов:

Пример

Повторяющийся линейный градиент:

#grad { /*Стандартный синтаксис*/ background-image: repeating-linear-gradient(red, yellow 10%, green 20%); }

Попробуйте сами »


Радиальные градиенты CSS3

Радиальные градиенты определяются их центром.

Чтобы создать радиальный градиент, необходимо также определить как минимум две цветовые остановки. Цветовые остановки — это цвета, между которыми вы хотите создавать плавные переходы. Вы также можете указать центр градиента, форму (круг или эллипс) и размер. По умолчанию центр градиента — center (то есть в центральной точке), форма — ellipse, а размер — farthest-corner.

Примеры радиальных градиентов:

Radial gradient

Синтаксис

background-image: radial-gradient(shape size at position, start-color, ..., last-color);

Радиальный градиент — равномерно распределённые цветовые остановки (по умолчанию)

Пример

Радиальный градиент с равномерно распределёнными цветовыми остановками:

#grad { background-image: radial-gradient(red, yellow, green); }

Попробуйте сами »

Радиальный градиент — неравномерно распределённые цветовые остановки

Пример

Радиальный градиент с неравномерно распределёнными цветовыми остановками:

#grad { background-image: radial-gradient(red 5%, yellow 15%, green 60%); }

Попробуйте сами »


Задать форму

Параметр shape определяет форму. Он может принимать значение circle или ellipse. Здесь circle означает круг, а ellipse означает эллипс. Значение по умолчанию — ellipse.

Пример

Радиальный градиент в форме круга:

#grad { background-image: radial-gradient(circle, red, yellow, green); }

Попробуйте сами »


Использование различных ключевых слов размера

Параметр size определяет размер градиента. Он может быть одним из следующих четырёх значений:

  • closest-side
  • farthest-side
  • closest-corner
  • farthest-corner

Пример

Радиальные градиенты с разными ключевыми словами размера:

#grad1 { background-image: radial-gradient(closest-side at 60% 55%, red, yellow, black); } #grad2 { background-image: radial-gradient(farthest-side at 60% 55%, red, yellow, black); }

Попробуйте сами »


Повторяющиеся радиальные градиенты

Функция repeating-radial-gradient() используется для повторяющихся радиальных градиентов:

Пример

Повторяющийся радиальный градиент:

#grad { background-image: repeating-radial-gradient(red, yellow 10%, green 15%); }

Попробуйте сами »
Другие расширения