Перша CSS змінна: currentColor

3 хв. читання

CSS змінні повільно проходили шлях від intial draft до реалізації в браузері. Але все ж таки одна замінна перебувала у можливостях використання роками це- currentColor. Ця СSS деталь мала хорошу браузерну підтримку та деяке практичне застосування, отже зараз є чудова можливість вивчити як її застосовувати.

Успадковане правило

Одним з менш відомих правил CSS, є те, що коли ви встановлюєте властивість color разом з border без вказування кольору, то границя автоматично переймає колір тексту, для прикладу використаємо HSL колір:

    h1{
      color:hsl(0,0%,44%);
      pading: 1rem;
      border-bottom: 4px solid;
      display:inline;
      font-size:4rem;
      font-family:Georgia;
    }

Ось що вийшло:

Це гарний трюк: якщо ви зміните властивість color для заголовка, властивість border-color автоматично змінить своє значення на відповідне, теж cаме справедливо для outline та box-shadow.

Використовуючи currentColor ми можемо розширити цю фунуцію і для дочірніх елементів

Практичний приклад використання currentColor

Додамо синє посилання на нашу веб- сторінку. Останнім часом встановлювати посилання того ж кольору,як і текст в якому воно знаходиться стало звичайною практикою. Звичайно ми повинні розуміти , що посилання залишаються посиланням. Одна з моїх найулюбленішиз технік.

    p { color: #333; }
    p a {
    text-decoration: none; color: #333;
    font-weight: bolder;
    display: inline-block;
    padding-bottom: .5rem;
    border-bottom: 1px dashed #333;
    }

Поки це працює, можливо ви можете побачити проблему: ми говоримо, що посилання повинні бути того ж кольору, що і отчуючий його текст, а також використовувати той же колір на нижній границі тексту. Як ми бачимо це повторення одного і того ж кольору тричі: будь- яка зміна дизайну буде означати зміну кольору кожно з них.

Замість цього зробимо наступне: визначимо колір тексту, тільки один раз і нехай інші властивості успадковують колір через currentColor

    p { color: #333; }
    p a {
    text-decoration: none;
    color: currentcolor;
    font-weight: bolder;
    display: inline-block;
    padding-bottom: .5rem;
    border-bottom: 1px dashed currentcolor;
    }

Ви можете використовувати currentColor будь-де, як градієнт та SVG:

    body { color: #f0f; }
    hr { height: 10px; background: currentcolor; }

Що було бы дійсно круто, то це якщо ми мали б змогу маніпулювати змінною currentcolor, тобо виконувати щось у вигляді цього: (currentcolor) 10% lighter. Але такі маніпуляції нажаль неможливі і це залишається у сфері препроцесорів.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 1.6K
Приєднався: 1 рік тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід