В чем разница между RGB и RGBA, кроме «непрозрачности»

Я вышел за рамки использования стандартных цветов в CSS, объявив их orange, blue, aquamarine и т. д., и использовал rgb() для тех же цветов соответственно, rgb(255,165,0), rgb(0,0,255) и rgb(127,255,212) (спасибо ColorHighlighter пакет в ST3).

При изменении градиента для начальной загрузки .btn я наткнулся на rgba(). Быстрое исследование показывает, что a означает alpha, и существует целая куча интегральной математики, приписываемая Кэтмаллу и Смит. Также довольно легко обнаружить, что альфа-канал используется для «альфа-компоновки», что в основном может быть связано с «непрозрачностью».

  • Есть ли различия между ними, кроме непрозрачности?
  • Почему не принято использовать RGBA (я предполагаю это, так как только сейчас натыкаюсь на это)
  • Существуют ли другие ограничения, которые следует знать при использовании rgba() для Интернета?
  • Есть ли ярлык для объявления непрозрачности рядом с ярлыком цвета? (т.е. color: salmon:.5;)
  • С точки зрения веб-разработчика, нужно ли мне беспокоиться о различиях между порядком байтов ARGB, RGBA и BGRA для разных машин ИНФОРМАЦИЯ ?
  • Другая важная информация?

person chris Frisina    schedule 02.07.2014    source источник
comment
Есть ли различия между ними, кроме прозрачности? Нет. См. dev.w3.org/csswg/css-color/#rgb-functions   -  person j08691    schedule 02.07.2014


Ответы (3)


RGB — это 3-канальный формат, содержащий данные для красного, зеленого и синего цветов. RGBA — это 4-канальный формат, содержащий данные для красного, зеленого, синего и альфа-канала.

От альфа-канала нет никакой пользы, кроме как сделать цвет прозрачным/непрозрачным (или частично прозрачным; полупрозрачным).

В CSS rgb() широко поддерживался браузерами в течение нескольких лет, прежде чем rgba() получил такой же уровень поддержки. Это одна из причин, по которой вы найдете больше rgb() в CSS, чем rgba(). Другая причина в том, что полупрозрачность — это не то, что вы обычно используете везде.

Вы можете найти значение RGB, упакованное в 16 бит, с 5 битами для синего и красного и 6 битами для зеленого (зеленый получает больше битов, потому что глаз более разборчив к оттенкам зеленого). Вы также можете найти значение RGBA, упакованное в 16 бит, по 5 бит для каждого цвета и 1 бит для альфа-канала. С помощью одного бита вы можете сделать цвет полностью прозрачным или совсем не прозрачным.

Как правило, в настоящее время вы обнаружите, что RGB и RGBA упакованы в 32-битные значения, по 8 бит для каждого цвета и 8 бит для альфа-канала (или оставлены пустыми для RGB).

В CSS дизайнеры решили использовать значения от 0 до 255 (диапазон 8-битного значения) для красного, зеленого и синего цветов, но они используют значения от 0,0 до 1,0 для альфа-канала. Фактический байтовый формат цвета не имеет значения для веб-разработчиков.

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

HSL на самом деле гораздо лучший формат для работы с цветами и поддерживается в CSS (IE9+, Firefox, Chrome, Safari и Opera 10+).

http://www.w3schools.com/cssref/css_colors_legal.asp

person Rich Remer    schedule 02.07.2014

RGB — это стандартные цвета RGB, вы уже это понимаете.

RGBa — это стандартные цвета RGB, но также с альфа-каналом/непрозрачностью.

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

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

Объявление альфа в CSS будет выглядеть так rgba(0, 0, 0, .3), где альфа представляет собой десятичное или целое число из < сильный>1 до 0. 1 — непрозрачный, 0 — полностью прозрачный.

person NathanZNeitman    schedule 02.07.2014

rgb стандартные rgb значения (red, green, blue)

rgba стандартные rgb значения (red, green, blue + Alpha (aka opacity))

Вы не найдете никаких цветовых вариаций. RGBA — это свойство цвета css3.

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

CSS:

div {    
  background-color: rgb(200, 54, 54); /*The Fallback*/
  background-color: rgba(200, 54, 54, 0.5) !important; 
}
person remixdesign    schedule 02.07.2014
comment
У ОП полдюжины вопросов, и вы только что повторили то, что, по его словам, он уже обнаружил. - person j08691; 02.07.2014
comment
Я представил слишком рано. Извините за это j08691 - person remixdesign; 02.07.2014
comment
Отредактируй тогда! :) @ремиксдизайн - person ; 30.11.2019