Градієнт на базі CSS старі та нові рішення, Vaden Pro

У статті розкривається поняття градієнта, а також розповідається, як за допомогою прийомів CSS встановити фоновий градієнт. У статті буде представлено старий і новий метод вирішення цього завдання, а також буде проведено їх порівняльний аналіз із зазначенням слабких і сильних сторін.

градієнт

Насамперед необхідно розібратися з поняттям градієнта. Що це таке?

Градієнт– особливий фон, що складається з двох і більше кольорів або відтінків, перехід яких від одного до іншого здійснюється плавно.

Технічно градієнт визначається двома основними точками, котрим чітко визначається колір і прозорість. Кольори проміжних точок між ключовими визначаються математичними прийомами.

Градієнт ділиться на кілька різновидів:

  1. Лінійний– градієнтний перехід кольорів здійснюється вздовж прямої лінії.
  2. Круговий- колірні перетворення здійснюється по колу, від центру до далеких точок.
  3. Кутовий– перехід здійснюється по периметру кола.
  4. Відбитий– є комплексом лінійного градієнта та дзеркального відображення.
  5. Алмазний- ефект свічення дорогоцінного каменю.

Нижче наведено приклади градієнтів. Номер малюнку відповідає номеру типу у списку вище.

градієнт

Який вигляд має градієнт на сайті?

Найчастіше градієнт застосовується у меню чи кнопках. Це надає ефекту об'ємності і формує особливий стиль, який можна побачити на прикладі нижче

А ось на цьому малюнку видно, яким чином застосовують градієнт у блоках. У цьому випадку це футер

Цілком логічно, що застосування картинки градієнта в такому випадку є нераціональним рішенням, так як така картинка буде дуже великою і займатиме багато пам'яті. Тому завантаження сторінки буде здійснюватися із затримкою. Це нас не влаштовує.

Батьківський метод: градієнт на CSS

У ті часи, коли верстальники могли покластися тільки наCSS2, градієнт встановлювався за таким принципом

  1. Створюється картинка шириною один піксель (або висотою – це залежить від напрямку градієнта), яка являє собою зразок необхідного градієнта.
  2. Розмножуємо картинку необхідної осі.

Нижче показано, як це прописується у файлі CSS:

У цьому записі колір фону, записаного в background, повинен збігатися із кольором останнього пікселя картинки. Було розглянуто варіант, коли градієнт позиціонується вгорі. Тепер розглянемо, як його позиціонувати внизу:

У цьому випадку верхній піксель картинки повинен збігатися з кольором заднього фону. Результат записаного коду представлений на зображенні

базі

Також варто відзначити, що якщо градієнт спрямований не вздовж вертикальної осі, а горизонтальної, тоrepeat-xпотрібно замінити наrepeat-y.

Крім того, хотілося б відзначити позитивні сторони цього методу:

  • легкість використання та мінімальний запис у коді у вигляді однієї команди;
  • високий показник кросбраузерності.

Не варто забувати, що не існує ідеальних рішень, кожен має свої недоліки:

  • фонова картинка, яка представляє додаткове навантаження на сервер, незважаючи на те, що її розмір максимально мінімізований;
  • на додаток до першого недоліку, до завантаження фонового зображення користувач бачитиме блок із суцільним забарвленням;
  • такимспособом можна реалізувати лише лінійний градієнт, для інших різновидів потрібно буде створювати великі картинки на весь фон, тому що для них не можна буде застосувати циклічність (repeat);

Насамкінець необхідно відзначити ще одну особливість методу. При зміні висоти блоку картинка не масштабуватиме, тому верх або низ блоку буде залитий суцільним кольором.

Просунутий метод: градієнт лише на CSS

З виходом нової специфікації CSS3 з'явилися нові функції, за допомогою яких можна встановлювати градієнтний фон блоку. Перша функція -linear-gradient();, яка формує лінійний градієнт, і друга -radial-gradient();, яка відповідає за радіальний градієнт. Цей тандем дозволить створювати будь-який вид градієнта. Також варто відзначити широкий спектр можливостей функцій, до якого входить можливість встановлення багатобарвного градієнта, а також встановлювати своє розташування через background-position. Нижче в таблицях представлений повний потенціал можливостей цих функцій