Шестнадцатеричное представление цвета с альфа-каналом?

117

Существует ли W3 или какой-либо другой заслуживающий внимания стандарт представления цвета (включая альфа-канал) в шестнадцатеричном формате?

Это #RGBA или #ARGB?

Патрик Клуг
источник
8
Он появится в исходном коде CSS Color Level 4 (см. Четвертый маркер)
Шиме Видас
@ ŠimeVidas, если бы вы поместили это в ответ, я бы проголосовал за вас.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
@cirosantilli Я выгляжу так, будто мне нужна репутация? :-P
Шиме Видас
1
@ ŠimeVidas lol, если хочешь поделиться, то ... =)
Чиро Сантилли 郝海东 冠状 病 六四 事件 法轮功
Здесь есть похожий вопрос, связанный с CSS
Джеймс Доннелли

Ответы:

83

В CSS 3, цитируя спецификацию, «нет шестнадцатеричной записи для значения RGBA» (см. Спецификацию CSS уровня 3 ). Вместо этого вы можете использовать функциональную нотацию rgba () с десятичными знаками или процентами, например, rgba (255, 0, 0, 0,5) будет на 50% прозрачным красным. Каналы RGB: 0-255 или 0% -100%, альфа - 0-1.

В CSS 4 * вы можете указать альфа-канал, используя 7-й и 8-й символы 8-значного шестнадцатеричного цвета или 4-й символ 4-значного шестнадцатеричного цвета (см. Спецификацию CSS уровня 4 *)

По состоянию на май 2019 года можно ожидать, что> 80% пользователей понимают формат #RGBA.

  • Firefox поддерживает этот синтаксис с Firefox 49 ( ошибка Mozilla 567283 ).
  • Safari поддерживает этот синтаксис с Safari 10.
  • Chrome поддерживает этот синтаксис с Chrome 62. Для более ранних версий вы могли включить экспериментальные веб-функции для использования этого синтаксиса. См. Выпуск Chromium 618472 и ошибку Webkit 150853 .
  • Приложения Android, предназначенные для Android P или новее, могут использовать этот синтаксис
  • Opera поддерживает этот синтаксис в Opera 52 (или Opera 39, если включены экспериментальные веб-функции).
  • IE 11 и EdgeHTML 18 (Edge 44) не поддерживают этот синтаксис. Версии Edge на основе Chromium будут поддерживать этот синтаксис.

Актуальная информация о поддержке браузера доступна на CanIUse.com.

* Технически все еще в стадии разработки, но, учитывая поддержку браузера, это вряд ли будет изменено.

Тель
источник
2
На данный момент Mozilla (Firefox 49), похоже, поддерживает #RRGGBBAA и #RGBA
Shiyaz,
92

Похоже, что нет шестнадцатеричного альфа-формата: http://www.w3.org/TR/css3-color/

В любом случае, если вы используете препроцессор CSS, такой как SASS, вы можете передать шестнадцатеричный код в rgba: background:

rgba(#000, 0.5);

А препроцессор просто автоматически преобразует шестнадцатеричный код в rgb.

guitarranalon
источник
15

Не уверен, есть ли официальный стандарт -

RGBA - это представление, которое я видел для Web Macromedia, а другие используют ARGB

Я считаю, что RGBA - более распространенное представление.

Если это поможет, это из W3 для CSS3
http://www.w3.org/TR/css3-color/#rgba-color

ИЗМЕНИТЬ (Патрик): цитата из приведенной выше ссылки W3

В отличие от значений RGB, для значения RGBA нет шестнадцатеричной записи.

Келли Гендрон
источник
2
Кроме того, функция CSS для определения цветов с альфа-каналом - это rgba ()
Янтарь,
8
из опубликованной вами ссылки W3: В отличие от значений RGB, для значения RGBA нет шестнадцатеричной записи.
Патрик Клуг,
2
Я видел # RGB, A раньше. Weird.
Джошуа
Для чертежей Android это ARGB: developer.android.com/reference/android/graphics/drawable/…
Дерек Курт,
10

Chrome 52+ поддерживает альфа-шестнадцатеричный код:

background: #56ff0077;

Для старых браузеров вам придется использовать:

background-color: rgba(255, 220, 0, 0.3);
Одед Брейнер
источник
3
Нет, если вы не включите экспериментальные веб-функции, потому что это вызывало проблемы на Android. См. Мой ответ выше, чтобы узнать о поддержке браузера.
thelem
3

Вы можете попробовать поместить шестнадцатеричный цвет в палитру цветов GIMP или фотоателье, чтобы получить значение RGB, а затем использовать значение альфа. например. красный - это #FF0000или rgb(255,0,0), если вы хотите красный цвет со значением альфа 0,5, тогда rgba(255,0,0,.5).

Возможно, это не совсем то, что вы хотели, но, надеюсь, поможет.

Jinjubei
источник
1
Это было отклонено, что кажется немного резким. Он не отвечает на заданный вопрос, но в вопросе не говорится, почему они хотят знать. Если они просто хотят использовать цвет RGBA в CSS, тогда это правильный ответ.
thelem