Перейти к основному содержимому

Градиенты CSS

Плавный переход между двумя или более цветами внутри элемента создают функции градиента CSS, которые передаются свойству background-image.

Доступны три типа градиентов:

  • Линейные градиенты — цвета меняются вдоль линии, идущей вниз, вверх, влево, вправо или по диагонали
  • Радиальные градиенты — цвета расходятся наружу от центральной точки
  • Конические градиенты — цвета вращаются вокруг центральной точки

Функция CSS linear-gradient()

Используйте функцию CSS linear-gradient(), когда цвета должны меняться вдоль прямой линии, идущей вниз, вверх, влево, вправо или по диагонали.

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

Сверху вниз (по умолчанию)

В этом линейном градиенте красный находится вверху элемента и, смешиваясь, переходит вниз в жёлтый.

Prompt
Покажите линейный градиент на div, идущий сверху вниз, начиная с красного и заканчивая жёлтым. Div должен быть достаточно высоким, чтобы чётко видеть градиент.
Результат: полная HTML-страница

Снизу вверх

Если изменить направление на обратное, красный окажется внизу элемента, а переход пойдёт вверх, пока не дойдёт до жёлтого наверху.

Prompt
Покажите линейный градиент на div, идущий снизу вверх, начиная с красного и заканчивая жёлтым.
Результат: полная HTML-страница

Слева направо

Этот линейный градиент идёт вбок: он начинается с красного у левого края и доходит до жёлтого у правого.

Prompt
Покажите линейный градиент на div, идущий слева направо, начиная с красного и заканчивая жёлтым.
Результат: полная HTML-страница

По диагонали

Здесь переход пересекает элемент по диагонали: красный находится в левом верхнем углу, а жёлтый — в правом нижнем.

Prompt
Покажите линейный градиент на div, идущий по диагонали из левого верхнего угла в правый нижний, начиная с красного и заканчивая жёлтым.
Результат: полная HTML-страница

Синтаксис

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

Линейный градиент - Использование углов

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

  • «to top» соответствует 0deg
  • «to right» соответствует 90deg
  • «to bottom» соответствует 180deg
  • «to left» соответствует 270deg

Пример

С углом 180deg этот линейный градиент переходит от красного к жёлтому.

Prompt
Покажите линейный градиент на div, используя угол 180 градусов, от красного к жёлтому.
Результат: полная HTML-страница

Синтаксис

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

Линейный градиент - Несколько цветовых точек

Линейный градиент не ограничен двумя цветовыми точками.

Три цветовые точки

В этом градиенте сверху вниз идут три цвета: красный, жёлтый и зелёный.

Prompt
Покажите линейный градиент на div с тремя цветовыми точками: красный, жёлтый и зелёный, идущий сверху вниз.
Результат: полная HTML-страница

Градиент радуга

Здесь все цвета радуги идут слева направо, а поверх них размещён текст.

Prompt
Покажите линейный градиент слева направо с цветами радуги (красный, оранжевый, жёлтый, зелёный, синий, индиго, фиолетовый) на div, с центрированным белым текстом "Фон радуга".
Результат: полная HTML-страница

Линейный градиент - Прозрачность

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

Задавайте цветовые точки функцией rgba(): её последнее значение управляет прозрачностью по шкале от 0 до 1, где 0 означает полную прозрачность, а 1 — полную непрозрачность (без прозрачности).

Пример

Слева направо этот градиент начинается полностью прозрачным и заканчивается полностью красным.

Prompt
Покажите линейный градиент на div, идущий слева направо, начиная с полностью прозрачного красного (rgba(255,0,0,0)) и заканчивая полностью красным (rgba(255,0,0,1)).
Результат: полная HTML-страница

Функция CSS repeating-linear-gradient()

Чтобы повторить узор линейного градиента, используйте функцию CSS repeating-linear-gradient().

Пример

Здесь повторяющийся узор такой: красный, затем жёлтый на 10% и зелёный на 20%.

Prompt
Покажите повторяющийся линейный градиент на div, используя красный, жёлтый на 10% и зелёный на 20%.
Результат: полная HTML-страница