Как сделать градиентный фон в css. CSS: Линейный градиент для фона. Добавление большего количества цветов

Как то столкнулся я с мощной DDOS атакой на сайт, когда мне положили его наглухо. Вот тогда и пришлось открыть для себя CloudFlare.

Это популярнейший сервис облачной сети по обслуживанию сайтов и интернет ресурсов с обеспечением их безопасности и оптимизации. Он предоставляет защиту от DDOS атак, SSL сертификаты и ряд других очень полезных инструментов.

Cloudflare - самый большой, самый быстрый и самый надёжный управляемый DNS сервис в мире с более чем 35% долей рынка.

Сайт подключённый к CloudFlare загружается быстрее, при этом потребляя значительно меньше пропускного трафика, а следовательно нагрузки на сервер становятся меньше. При этом сайт или интернет ресурс становится более защищённым от злоумышленников.

Эта облачная сеть была создана тремя америкосами в 2009 году. Она очень быстро развилась и уже в 2011 году удостоилась награды на Всемирном экономическом форуме в Давосе за использование инновационных технологий защиты от угроз . Сеть основывается на усовершенствованной версии Nginx и насчитывает более 100 дата-центров расположенных в различных странах. Количество серверов сети CloudFlare непрерывно растёт по всему миру. Они есть в Москве и Киеве.

Принцип работы сервиса заключается в том, что сайт подключается к системе через прописывание в домене DNS-серверов CloudFlare (каждому пользователю выделяется пара DNS-серверов вида ***.ns.cloudflare.com). В панели управления CloudFlare можно настроить записи, для записей, указывающих на IP-адреса (типа CNAME и A) — определить, идёт ли трафик через CloudFlare (тогда IP-адрес сайта скрывается).

Регистрация бесплатная, плата за трафик передаваемый через CDN не снимается.

В CloudFlare есть 4 тарифных плана:

  • Бесплатный (бесплатный SSL, статистика и блокировка спамботов, кеш для контента, режим атаки);
  • Профессиональный (SSL, статистика в реальном времени, оптимизация для мобильных устройств) — 20$ в месяц за первый сайт, 5$ в месяц за последующие;
  • Бизнес (защита от DDoS, гарантия 100 % доступности сайта) — 200$ в месяц;
  • Корпоративный (компенсация за простой 2500 %, техподдержка по телефону) — 5000$ в месяц.

*В статистике собирается информация об отклонённых подозрительных запросах, общем трафике за месяц и объёме трафика, сэкономленного благодаря кешированию CloudFlare.

Сеть очень популярна и используется во всём мире.

Always Online

Always Online — опция CloudFlare, позволяющая просматривать сайты, у которых сервер в настоящий момент перестал функционировать. Эта функция бесплатна для всех пользователей CloudFlare.

Если она включена, а сайт не работает - то показывается копия страницы сайта и сообщение: «This page сайт is currently offline. However, because the site uses CloudFlare’s Always Online™ technology you can continue to surf a snapshot of the site».

CloudFlare и браузер Tor

После подключения CloudFlare заметно усложняется работа с сайтами через анонимный браузер Tor. На многие простые запросы (отправка личного сообщения, например) появляется запрос сложной каптчи, при этом запрос может быть не выполнен и после введения каптчи может потребоваться вновь отправлять сообщение (если текст не был сохранен вне браузера - он попросту теряется).

Инциденты

Бывают случаи, когда IP от CloudFlare попадают в чёрный список Роскомнадзора, от чего могут страдать невиновные сайты, так как CloudFlare выделяет один и тот же IP для нескольких сайтов.

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

Есть примеры когда от мощнейшего DDoS не помогали даже платные планы подписки. Так в 2015 году был на несколько дней положен сайт Ficbook, подключенный к CloudFlare.

Рекордная атака

По сообщению генерального директора Мэтью Прайса (Matthew Price), CloudFlare подвергалась в феврале 2014 года DDoS-атаке мощностью 400 Гбит/с.

Как подключить Cloudflare

Чтобы подключить сайт к сервису Cloudflare, для начала зарегистрируйтесь https://www.cloudflare.com/a/sign-up

после чего выполните действия показанные в видео инструкции.

Видео: как подключить Cloudflare

Не только CDN в чистом виде, но и ещё множество других дополнительных возможностей, которые могут быть полезны для сайтов любой тематики.

Итак, во-первых, CloudFlare - это бесплатный (есть разные тарифы) CDN. Но кроме всего этого, он ещё кэширующий прокси, имеет защиту от атак и много дополнительных полезностей.

CDN

Сервера CloudFlare находятся в 23-ёх городах по всему миру. Это позволяет загружать ваш контент из того района, который ближе всего к посетителю. Конечно, вы сразу же скажете, что у CloudFlare нет ни одного дата-центра в России. Но, как вы поймёте далее, это не такая уж и большая проблема.

Optimizer

Именно благодаря CloudFlare optimizer даже пользователи из России смогут заметить существенный прирост в скорости вашего сайта. CloudFlare кэширует весь статический и динамический контент вашего сайта и асинхронно отдаёт посетителям. Также попутно используется технология минимизации скриптов и CSS. Также, если это возможно, используется локальное хранилище браузера. При этом CloudFlare в первую очередь опирается на настройки кэша вашего сервера.

Защита от атак

CloudFlare предлагает защиту от DDOS-атак даже для бесплатных аккаунтов. Причём это делается всего одной кнопкой, вам не понадобятся какие-то особые знания для этого.

Подключение CDN для своего домена

Это делается очень легко и буквально за две минуты.

Вы просто вводите адрес своего сайта и нажимаете Add Website. Далее CloudFlare скажет вам, какие записи DNS вам нужно заменить. После того как DNS для вашего домена обновятся, CloudFlare заработает на вашем сайте. Вот и вся настройка.

Кэширование

CloudFlare предлагает тонкие настройки кэширования вашего контента.

Сразу же скажу, что даже при максимальных настройках кэширования и оптимизации, вы сможете смело обновлять свои скрипты и CSS. Конечно, если вашим сервером правильно отдаются настройки их кэширования. Также вы можете включить в панели управления CloudFlare режим разработки. Он работает в течение трёх часов после включения, и в этот период вы будете видеть все изменения на сайте в реальном времени.

Если вам кажется, что прирост в скорости от этих всех действий минимальный и вам не нужен, то просто покажу два скриншота:

Защита от атак

Вы можете включить для своего сайта защиту от DDOS и прочих атак. При этом (в зависимости от настроек) всем «подозреваемым» при заходе на ваш сайт придётся решить капчу на специальной страничке.

Так вы сможете включить обфускацию e-mail, запрет хот-линкинга и кражу контента. Также вы можете спрятать чувствительную информацию от возможных спаммеров и прочих нежелательных лиц, а обычные посетители смогут её прочесть.

Приятные мелочи

Кроме всего прочего, у CloudFlare есть так называемые приложения. Вы можете, например, включить для пользователей старых версий IE сообщение о том, что их браузер устарел. При этом в код сайта добавлять ничего не нужно. Это, как и любое другое, приложение включается и выключается просто нажатием одной кнопки.

В качестве итога

Экономия трафика на сервере

  • Перевод

Работа над переводом о проекте singlediv.com показала, что некоторые инструменты CSS имеют более широкое применение, чем я привыкла думать. Но для того чтобы суметь найти это применение, необходимо четко понимать особенности свойства. Ярким примером стал linear-gradient, который Линн Фишер виртуозно использовала в своих работах.

Хотите сделать симпатичный градиентный фон на своем сайте? background-image: linear-gradient(red, blue); готово! Да, это немного скучно. Поэтому, если вы хотите чего-то большего, рекомендую вам эту с советами по css и MDN страницу. Вы еще здесь? Тогда давайте рассмотрим некоторые моменты, как на самом деле работают линейные градиенты. Для начала, давайте вспомним синтаксис, который можно использовать в функции линейного градиента:

linear-gradient ([от <угла> | до <стороны-или-угла>]?, );
Функция принимает опциональный первый аргумент, который определяет угол градиента, и который можно выразить с помощью единицы измерения (градус, радиус, град, оборот) или в виде ключевого слова (стороны или угла.

После этого функция принимает список цветов.

Поле градиента

У градиентного изображения нет размеров, оно бесконечно в отличие от других фоновых изображений. Видимые размеры ему придает поле градиента, т.е. область, в которой оно отображается.

Как правило, когда вы применяете фоновое изображение в виде линейного градиента к элементу DOM, этой областью является рамка границ элемента (которая является той самой областью, в которой отображается фоновый цвет).

При этом если вы используете еще и CSS-свойство background-size (размер фона) и устанавливаете его, скажем, на 200px * 200px, тогда поле градиента будет иметь этот размер и будет, по умолчанию, размещаться в левом верхнем углу DOM-элемента, если только вы также не установите background-position (положение фона).

Поэтому, читая следующие разделы, просто помните, что поле градиента не всегда расположено так же и имеет такие же размеры, как и DOM-элемент, к которому вы применяете этот градиент.

Линия градиента

В поле градиента линия, которая проходит через центр и вдоль которой распределяются цвета, называется линией градиента. Эту линию можно описать проще в ходе разъяснения угол градиента, поэтому об этом более подробно следующем разделе.

Угол градиента

Вполне очевидно, что угол линейного градиента используется для определения того, в каком направлении пойдет градиент. Но давайте рассмотрим этот аспект подробнее.

Если С – это центральная точка поля градиента, тогда А – это угол между вертикальной линией, проходящей через С, и линией градиента, которая также проходит через С, и вдоль которой распределяются стоп-цвета градиента.

Этот угол можно определить двумя способами:

С помощью одного из ключевых слов: to top (вверх), to bottom (вниз), to left (влево), to right (вправо), to top right (вправо вверх), to top left (влево вверх), to bottom right (вправо вниз), to bottom left (влево вниз);
Или путем определения угла с числом и единицей измерения, например 45deg (45 градусов), 1turn (1 оборот);

Если угол не указывается, то по умолчанию он направляется вниз (то есть это 180 градусов или 0,5 оборота):


На этом и на следующих изображениях поле градиента ограничено прямоугольником, а линия градиента – это жирная серая линия, которая проходит через центр, и вдоль которой отображаются цвета.

В вышеприведенном примере угол не указан, поэтому градиент от белого к красному двигается сверху вниз, что соответствует ключевому слову to bottom (вниз), как показано ниже:

И, как показано на 2 следующих изображениях, to top (вверх) соответствует углу в ноль градусов:

Еще один важный момент, который стоит учитывать, используя ключевые слова угла - что to top right (вправо вверх), например, (или любое другое ключевое слово угла) зависит от размеров поля градиента.

Логика заключается в том, что если бы вы хотели сделать градиент от красного к синему в направлении верхнего правого угла элемента, тогда такой элемент должен быть именно синим в верхнем правом углу, а фиолетовый цвет в середине градиента должен формироваться вокруг линии, которая проходит из верхнего левого в нижний правый угол. Вот как это выглядит на изображении:

Поэтому to top right (вправо вверх) не означает, что линия градиента проходит через правый верхний угол, и это даже не значит, что угол градиента равен 45 градусам!

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


На этой анимации угол наклоняется от 0 до 360 градусов с шагом в 10 градусов. Низкое разрешение GIF даже позволяет лучше рассмотреть, как различные цвета отображаются в виде «линий», которые всегда перпендикулярны линии градиента.

Давайте вспомним, что мы знаем об углах градиента:

Угол измеряется между линией градиента и линией, которая выходит из центра поля градиента и движется вверх.
Поэтому 0 градусов означает вверх.
Стандартное значение угла, если оно не указывается, это вниз, что равно 180 градусам.
Ключевые слова угла зависят от размеров поля градиента.

Длина линии градиента

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

Посмотрите на пример:

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

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

Поэтому, чтобы это сделать, линия градиента иногда должна выходить за рамки поля градиента. При этом довольно легко узнать, где она начинается, и где заканчивается. Просто начертите линию, которая проходит через ближайший угол, и которая перпендикулярна линии градиента. Точка, где эта линия пересекает линию градиента, и есть местом начала/конца.

Фактически, если вы задает ширину поля градиента W, высоту H, и угол градиента, тогда длина линии градиента составляет:

Abs(W * sin(A)) + abs(H * cos(A))

Цвета

Цвета представляют собой список, разделенный запятыми, в котором каждый элемент можно определить следующим образом:
<цвет> [<процентное соотношение> | <длина>]?

Поэтому необязательно указывать, где должны размещаться цвета на линии градиента. Например:


Ни один из цветов не имеет своего положения, поэтому браузер сам определил их позиции.

На самом простом примере только с 2 цветами, цвет 1 будет размещаться на 0% (в начале линии градиента), а цвет 2 – на 100% (в конце линии градиента).

Потом, если вы добавите третий цвет, цвет 1 у вас все равно останется на 0%, цвет 2 будет на 50%, а цвет 3 – на 100%, и так далее.

В вышеприведенном примере было задано 5 стоп-цветов, и браузер рассчитал их относительное положение как 0%, 25%, 50%, 75%, 100%. Причиной тому является равномерное распределение вдоль поля градиента.

Позицию цвета можно выразить либо с помощью процентного соотношения (по отношению к размеру линии градиента) или в виде длины CSS (где действует любая единица измерения CSS).

Вот пример:

Как вы видите, каждый из 5 стоп-цветов имеет свое положение, заданное в пикселях. Эти положения рассчитываются от начала линии градиента.

Используя такие позиции, вы можете получить несколько интересных эффектов. Например, вы можете использовать градиент, чтобы не рисовать градиент как таковой, а оставить несколько цветов:

На изображении выше 7 цветов, и они установлены таким образом, чтобы следующий цвет начинался в точно той же позиции, что и последний, что означает, что браузеру не нужно заполнять пространство между двумя стоп-цветами градиентом.

Конечно, это все мило и забавно, но что произойдет, если вы смешаете позиционированные цвета с непозиционированными? Тогда вы заставите браузер работать больше и попросите его автоматически распределять цвета, для которых вы не указали позицию:

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

Давайте рассмотрим несколько примеров:

На примере выше только третий цвет (желтый) позиционирован на 30%. Поэтому, чтобы лучше распределить все остальные, первый размещается на 0%, последний – на 100%, а остальные цвета распределяются в промежутке (так, что оранжевый заканчивается непосредственно между 0% и 30%, а красный – между 30% и 100%).

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

Конечно, было бы слишком просто, если бы 0% и 100% были жесткими рамками, за которые нельзя выходить. Но как видно из предыдущего примера, последний цвет расположен на 120%, и поэтому все остальные цвета должны распределяться соответствующим образом относительно данной позиции (начальной точкой по умолчанию в этом случае остается 0%).

И если вы хотите заставить свой браузер работать еще больше, почему бы не указать порядок позиций?

На самом деле цвета должны иметь порядок, но ничто не запрещает вам этого не делать, и ничего ужасного не произойдет, если вы этого не сделаете. Ваш браузер просто все исправит, как показано ниже:

Начнем с первого цвета (красного), расположенного на 30%. Дальше второй цвет расположен на 10%, что уже неправильно, так как, как сказано выше, цвета должны указываться по возрастанию позиции. Поэтому здесь браузер исправляет позицию второго цвета и устанавливает его в то же положение, что и у предыдущего цвета (30%). Далее идет третий цвет (желтый), расположенный на 60%, что правильно, но за ним следует четвертый (синий) на 40%. Опять же позиция корректируется и устанавливается на то же значение, что и предыдущего позиционированного цвета.

В конечном итоге, как показано на примере выше, последний цвет (синий) позиционируется неправильно и браузер делает его позицию такой же, как и у предыдущего цвета, который в данном случае не является ни его непосредственным соседом (желтым), ни соседом цвета, который стоит перед ним (оранжевым), поэтому он должен вернуться к первом цвету (красному). Таким образом, все цвета между красным и синим установлены в положение 30% и поэтому невидимы.

Инструменты

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

В инструменте есть все виды багов и ограничений (см. комментарии в javascript), поэтому не ожидайте от него многого.

Теги:

  • CSS
  • linear-gradient
Добавить метки

Цветовой градиент - это плавный переход от одного заданного цвета к другому через промежуточные цвета. В линейном градиенте переход происходит по прямой, от точки A к точке B . Градиент может иметь и более двух опорных точек - тогда переход совершается от точки A к точке B , затем от точки B к точке C и так далее.

Как сделать фоновый линейный градиент в CSS

В CSS3 вы можете добавлять градиентный фон к элементам через уже известное свойство background-image . В качестве значения используется ключевое слово linear-gradient() , где в скобках необходимо указать стартовую точку градиента, начальный цвет и конечный цвет.

Например, давайте сделаем фоновый линейный градиент с переходом от фиолетового цвета к красному. При этом мы хотим, чтобы начальная точка с фиолетовым цветом была с правой стороны, а вектор градиента направлялся влево. Запишем код:

Background-image: linear-gradient(to left, violet, red); Фоновый градиент на блоке

400×400px

Цвета точек градиента можно записывать в любом формате, доступном в CSS, будь-то шестнадцатеричный код, формат RGB или другой. Направление градиента задается с помощью приставки to и затем ключевых слов left , right , top и bottom , которые можно комбинировать для изменения наклона. Например:

Background-image: linear-gradient(to bottom right, #ee82ee, #ff0000);

Кроме этого, можно прямо указать угол наклона, использовав положительное либо отрицательное число с приставкой deg (без пробела). При заданном угле 0º либо 360º градиентная линия будет идти снизу вверх. При увеличении угла наклона движение вектора происходит по часовой стрелке (при использовании отрицательного значения движение меняется на противоположное). Пример записи кода:

Background-image: linear-gradient(-110deg, #ee82ee, #ff0000);

Несколько опорных точек

Как мы уже сказали, у градиента может быть более двух опорных точек. При этом фон будет плавно переходить от первого цвета ко второму, от второго к третьему, от третьего к четвертому и так далее, пока не достигнет финальной опорной точки. Если вы хотите увеличить количество данных точек в градиенте, просто допишите их через запятую. Например:

Background-image: linear-gradient(145deg, #ee82ee, slateblue, #ffd86a, purple);

В нашем примере указаны четыре опорных цветовых точки, но их можно добавлять сколько угодно и в каких угодно доступных цветовых форматах.

Длина переходов

По умолчанию браузер размещает точки на равном расстоянии, поэтому и градация получается равномерной. Но этим расстоянием можно управлять, используя единицы измерения CSS. Давайте разберем следующий пример:

Background-image: linear-gradient(#92009b 20%, #f5e944 90%, #00ffa2);

В нашем коде после цвета #92009b указано значение 20% . Поскольку оно стоит возле первой опорной точки, это означает, что указанным цветом будет закрашено 20% длины элемента. После чего уже начинается градиент: значение 90% говорит браузеру, что нужно достичь цвета #f5e944 к 90% длины элемента (начав на уровне 20%). После чего в оставшемся пространстве начинается переход к третьему цвету - #00ffa2 .

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

Вендорные префиксы

Для обеспечения кроссбраузерности к некоторым поздним CSS-свойствам нужно дописывать вендорные префиксы - специальные приставки, которые добавляют разработчики браузеров:

  • -webkit- - префикс для Chrome, Safari, Android;
  • -moz- - префикс для Firefox;
  • -o- - префикс для Opera.

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

Background-image: -webkit-linear-gradient(left, violet, red); background-image: -moz-linear-gradient(left, violet, red); background-image: -o-linear-gradient(left, violet, red); background-image: linear-gradient(to left, violet, red);

Для добавления префикса требуется создавать отдельное объявление. Кроме того, как вы могли заметить, свойства с вендорными префиксами не требуют использования приставки to при указании направления градиента.

Поддержка Internet Explorer

К сожалению, градиентный фон работает только в IE10+. Предыдущие версии не понимают его и будут игнорировать. Чтобы обеспечить хотя бы обычный фон в старых браузерах, можно создать т. н. «заглушку»: выберите подходящий оттенок и запишите свойство background-color над свойством с градиентом. Таким образом, старый браузер применит «резервный» фоновый цвет, а неизвестные ему свойства пропустит, тогда как в более современном браузере градиентный фон наложится на сплошной фон и перекроет его.

Если же у вас установлен полупрозрачный градиент (например, с использованием цветового формата RGBA) и вы не хотите, чтобы сквозь него просвечивался резервный фон-заглушка, задавайте градиент через сокращенное свойство background вместо background-image . Тогда значение background-color будет перезаписано на transparent .

Далее в учебнике: repeating-linear-gradient() - повторяющийся линейный градиент.

CSS-градиенты позволяют сделать фон из двух и более цветов, плавно переходящих из одного в другой. Они с нами уже достаточно давно, и имеют довольно неплохую поддержку браузерами . Большинство современных браузеров понимает их без префиксов, для IE9 и старше есть Gradient Filter , также для IE9 можно использовать SVG.

Градиенты могут быть использованы везде, где используются картинки: в фонах, в качестве буллетов списков, они могут быть заданы в content или border-image .

Linear-gradient

Линейные градиенты достаточно просты в использовании. Для самого элементарного градиента достаточно задать начальный и конечный цвета:

Background: linear-gradient(orangered, gold);

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

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

Ключевыми словами: to top = 0deg ; to right = 90deg ; to bottom = 180deg - значение по умолчанию; to left = 270deg .

Ключевые слова можно сочетать между собой, чтобы получить диагональный градиент, например to top left .

Ниже можно увидеть как работают разные направления в растяжке от сиреневого до желтого:

Вот код самого первого квадрата, для примера:

Top-left { background: linear-gradient(to top left, purple, crimson, orangered, gold); }

Следует помнить, что to top right не то же самое, что 45deg . Цвета градиента располагаются перпендикулярно линии направления градиента. При to top right линия идет из нижнего левого в верхний правый угол, при 45deg - располагается строго под этим углом независимо от размеров фигуры.

Разница хорошо видна на прямоугольных фигурах:

Также можно задавать точки остановки для цветов градиента, значения задаются в единицах или в процентах и могут быть больше 100% и меньше 0%.

Примеры задания значений в % , в em и значения, выходящие за границы элемента:

Чем ближе находятся точки остановки соседних цветов, тем четче будет граница между ними. Таким образом можно легко делать полосатые фоны:

Так можно сделать, например, фон под боковую колонку, растянутый на всю высоту родительского элемента:

Полоски на фоне сайдбара - ещё один градиент, состоящий из чередования полной прозрачности и белого цвета с прозрачностью 30%. Градиенты с полупрозрачными цветами удобны тем, что их можно наложить поверх фона любого цвета.

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

При отсутствии ограничений код может быть гораздо короче:

Light { background: peachpuff linear-gradient(90deg, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, .4) 50%) center center / 2em; } .dark { background: steelblue linear-gradient(rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, .2) 50%) center center / 100% 1em; }

В первой строчке задаем фоновый цвет элемента, тип и направление (цвет и направление можно опустить), во второй - определяем цвета градиента и границу между ними, в третьей - задаем положение и размер получившегося изображения. Самая важная часть - размер. По умолчанию фон повторяется, поэтому получившийся паттерн заполнит собой фон элемента. Очень легко и понятно:)

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

Также важно знать, что ключевое слово transparent означает прозрачный черный, а не прозрачный белый, поэтому при его использовании в Firefox можно получить вот такую неприятность:

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

Чтобы узнать rgb-нотацию конкретного цвета, можно воспользоваться CSS.coloratum , инструментом от Lea Verou .

Помимо обычного linear-gradient можно сделать repeating-linear-gradient - повторяющийся градиент

Примерный код:

Background: repeating-linear-gradient(green, green .5em, transparent .5em, transparent 1em);

К сожалению, повторяющиеся градиенты ведут себя как попало и подойдут только для узоров, которым не важна точность. Если нужна аккуратность, используйте linear-gradient в сочетании с background-size и background-repeat .

Градиенты имеют такое же ограничение, что и box-shadow: им нельзя задавать отдельно цвета или направление. Это приводит к дублированию кода и острой потребности воспользоваться препроцессорами в случае создания сложных градиентов.

Другое ограничение состоит в том, что градиенты не анимируются, что, впрочем, можно до какой-то степени обойти .

Для быстрого создания кроссбраузерных градиентов есть очень удобный инструмент: colorzilla.com/gradient-editor/ . Помимо кода для современных браузеров, он предложит код для старых IE и SVG для 9-го.

В сочетании с базовыми возможностями управления фоновыми картинками градиенты дают широчайшие возможности для создания фонов разной степени сложности совершенно без использования изображений. Градиентами можно делать сложные и интересные паттерны, но это уже совсем другая тема.