Кратко
СкопированоФункция linear
используется для задания фона в виде линейного градиента.
Пример
Скопировано.element { background-image: linear-gradient(#6e4aff, #49A16C);}
.element { background-image: linear-gradient(#6e4aff, #49A16C); }
Как понять
СкопированоГрадиент — это плавный переход между цветами. Линейный градиент описывает изменение цвета вдоль прямой линии. В отличие от фоновых изображений градиент не может иметь конкретных размеров и его фактический размер совпадает с размером элемента.
Как пишется
СкопированоСамый простой вид градиента — переход между двумя цветами:
.element { background-image: linear-gradient(#2E9AFF, #F498AD);}
.element { background-image: linear-gradient(#2E9AFF, #F498AD); }
Количество цветов
СкопированоГрадиент может состоять из любого количества цветов. Укажите нужное количество значений через запятую внутри круглых скобок.
Цвета могут быть указаны в любом доступном формате. Подробнее о возможных значениях цветов в статье «Цвета в вебе».
Точки остановки цвета
СкопированоЧерез пробел после значения цвета можно задавать начальную и конечную точки цвета. Можно использовать любую единицу длины либо проценты. В начальной точке заканчивается плавный переход из предыдущего цвета. Конечная точка — это точка, с которой начинается плавный переход в следующий цвет.
Если конечная точка предыдущего цвета и начальная точка следующего совпадают, то переход будет в виде чёткой линии. Разберём пример.
.element { background-image: linear-gradient(#F498AD 25%, #2E9AFF 25% 50%, #FFD829 75%);}
.element { background-image: linear-gradient(#F498AD 25%, #2E9AFF 25% 50%, #FFD829 75%); }
По умолчанию градиент рисуется сверху вниз. В 25 процентах высоты от верха должен начаться плавный переход от цвета #
в цвет #2
. Но начальная точка второго цвета тоже 25%, поэтому мы наблюдаем чёткую границу между цветами.
Конечная точка цвета #2
— 50% от верха. В этой точке начинается плавный переход в последний цвет. Конечная точка жёлтого цвета — 75% от верха. В этой точке заканчивается плавный переход между цветами, и дальше весь фон будет равномерно жёлтым. Таким образом, ширина плавного перехода между цветами #2
и #
будет 25% (от 50 до 75%) высоты.
Направление градиента
СкопированоПервым параметром можно передать единицу измерения угла (deg
, turn
), и тогда линия, вдоль которой строится градиент, повернётся на нужный угол:
.element-1 { background-image: linear-gradient(-30deg, #2E9AFF, #F498AD);}.element-2 { background-image: linear-gradient(0.25turn, #2E9AFF, #FFD829);}
.element-1 { background-image: linear-gradient(-30deg, #2E9AFF, #F498AD); } .element-2 { background-image: linear-gradient(0.25turn, #2E9AFF, #FFD829); }
Мы можем задавать направление градиента, используя ключевые слова с приставкой to
: to left
, to top
, to right
, to bottom
(по умолчанию). Значения имеют следующие эквиваленты в углах:
to top
—0deg
;to bottom
—180deg
;to right
—90deg
;to left
—270deg
;
Ключевые слова можно сочетать, чтобы направить градиент в нужный угол элемента: to top left
будет рисовать градиент из правого нижнего в левый верхний угол.
Повторяющийся градиент
СкопированоЕсли градиент должен многократно повторяться, можно использовать функцию repeating
.
Множественные градиенты
СкопированоМножественный фон элемента может применяться и к градиентам.
Подсказки
Скопировано💡 Градиент можно анимировать! 🥳
На практике
Скопированосоветует Скопировано
🛠 Используя возможность резких переходов между цветами, можно генерировать различные паттерны при помощи линейного градиента. Яркий пример — разлинованный под школьную тетрадь фон:
советует Скопировано
🛠 Если нужно создать линейный градиент, уходящий в прозрачность, то вы неминуемо столкнётесь с проблемой в Safari и iOS. Во всех браузерах ключевое слово transparent
отрабатывает ожидаемо, плавно уводя градиент в прозрачность. А в Safari и iOS из-за особенностей реализации именно этого ключевого слова градиент будет уходить в грязный чёрный.
.element { background: linear-gradient(#F498AD 10%, transparent);}
.element { background: linear-gradient(#F498AD 10%, transparent); }
Линейный градиент в Chrome, красиво растворяется
Ровно тот же самый градиент, но в Safari. Это вообще легально? 😐
Решить этот баг можно довольно просто, хоть немного и больно. Нужно вместо ключевого слова transparent
указать предыдущий цвет градиента, но с нулевой прозрачностью. Визуально итог будет тот же, и даже в Safari всё заработает.
.element { background: linear-gradient(#F498AD 10%, rgb(244 152 173 / 0));}
.element { background: linear-gradient(#F498AD 10%, rgb(244 152 173 / 0)); }
🛠 Статьи и сборники классных паттернов, созданных при помощи градиентов: