Кольоровий модуль CSS рівня 4, ймовірно, підтримуватиме 4-х та 8-значні шістнадцяткові позначення RGBA!
Три тижні тому (18 грудня 2014 р.) Проект редактора CSS Color Module Level 4 був поданий до робочої групи CSS W3C. Хоча в стані, який дуже сприйнятливий до змін, поточна версія документа передбачає, що в деякому найближчому майбутньому CSS підтримуватиме як 4, так і 8-значну шістнадцяткову нотацію RGBA.
Примітка. Наступна цитата має вирізані нерелевантні фрагменти, і джерело, можливо, було сильно змінено до того часу, як ви це прочитали (як уже згадувалося вище, це редактор редакції, а не остаточний документ).
Якщо речі сильно змінилися, будь ласка, залиште коментар, який дасть мені знати, щоб я міг оновити цю відповідь!
§ 4.2. Шістнадцяткові позначення RGB: #RRGGBB
Синтаксис a <hex-color>
- це <hash-token>
маркер , значення якого складається з 3, 4, 6 або 8 шістнадцяткових цифр . Іншими словами, шістнадцятковий колір записується як хеш-символ "#", а потім деяка кількість цифр 0-9
або літер a-f
(справа букв не має значення - #00ff00
ідентична #00FF00
).
8 цифр
Перші 6 цифр інтерпретуються ідентично 6-розрядним позначенням. Остання пара цифр, інтерпретована як шістнадцяткове число, вказує альфа-канал кольору, де 00
представлений повністю прозорий колір і ff
являє собою повністю непрозорий колір.
Приклад 3
Іншими словами, #0000ffcc
являє собою той же колір, що і rgba(0, 0, 100%, 80%)
(злегка прозорий синій).
4 цифри
Це коротший варіант 8-розрядних позначень, "розширений" так само, як і 3-розрядне позначення. Перша цифра, інтерпретована як шістнадцяткове число, вказує червоний канал кольору, де 0
представляє мінімальне значення та f
представляє максимум. Наступні три цифри представляють зелений, синій та альфа-канали відповідно.
Що це означає для майбутнього кольорів CSS?
Це означає, що якщо припустити, що це не повністю вилучено з документа рівня 4, ми незабаром зможемо визначити наші кольори RGBA (або кольори HSLA, якщо ви один із цих хлопців) у шістнадцятковому форматі у браузерах, які підтримують колір Синтаксис рівня модуля 4 рівня.
Приклад
elem {
background: rgb(0, 0, 0); /* RGB notation (no alpha). */
background: #000; /* 3-digit hexadecimal notation (no alpha). */
background: #000000; /* 6-digit hexadecimal notation (no alpha). */
background: rgba(0, 0, 0, 1.0); /* RGBA notation. */
/* The new 4 and 8-digit hexadecimal notation. */
background: #0000; /* 4-digit hexadecimal notation. */
background: #00000000; /* 8-digit hexadecimal notation. */
}
Коли я зможу використовувати це в своїх клієнтських продуктах?
Усі жарти вбік: зараз це лише початок 2015 року, тому вони ще не підтримуватимуться в жодному браузері ще довгий час - навіть якщо ваш продукт призначений лише для роботи з найсучаснішими веб-переглядачами, напевно, ви не побачити цього в дії в браузері виробництва скоро.
Перегляньте поточну підтримку браузера для кольорових позначень #RRGGBBAA
Однак, сказане, спосіб CSS означає, що ми можемо реально почати їх використовувати вже сьогодні! Якщо ви дійсно хочете почати користуватися ними прямо зараз, доки ви додасте падіння, будь-які не підтримуючі веб-переглядачі просто ігнорують нові властивості, поки вони не будуть визнані дійсними:
figure {
margin: 0;
padding: 4px;
/* Fall back (...to browsers which don't support alpha transparency). */
background: #FEFE7F;
color: #3F3FFE;
/* Current 'modern' browser support. */
background: rgba(255, 255, 0, 0.5);
color: rgba(0, 0, 255, 0.75);
/* Fall... foward? */
background: #ffff007F; /* Or, less accurately, #ff08 */
color: #0000ffbe; /* Or #00fc */
}
<figure>Hello, world!</figure>
Поки ви переглядаєте цю відповідь у веб-переглядачі, який підтримує background
і color
властивості в CSS, <figure>
елемент в результаті наведеного фрагмента буде виглядати дуже схожим на це:
Використовуючи останню версію Chrome в Windows (v39.0.2171) для перевірки нашого <figure>
елемента, ми побачимо наступне:
Шестицифрове шестизначне зворотнє зворотнє відношення переосмислюється rgba()
значеннями, а наші 8-значні шістнадцяткові значення ігноруються, оскільки вони CSS-аналізатором CSS Chrome зараз вважають недійсними. Щойно наш браузер підтримує ці 8-значні значення, вони перевершать ці rgba()
.
ОНОВЛЕННЯ 2018-07-04: Firefox, Chrome та Safari підтримують цю нотацію зараз, Edge все ще відсутня, але, ймовірно, буде слідувати ( https://caniuse.com/#feat=css-rrggbbaa ).
rgb(0xff,\x80,#44)
дивовижно уявлення восьмеричної , здається, йорк трохиrgb(0100, 0200,0300)
буде#4080C0