Чем отличаются 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 для разных машин? INFO?
  • Другая важная информация?

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

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

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

Кроме этого нет никакой разницы, цвета все еще кодируют то же самое.

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

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

rgb - стандартные значения rgb (красный, зеленый, синий)

rgba - это стандартные значения rgb (красный, зеленый, синий + альфа (прозрачность))

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

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

CSS:

div {
    background-color: rgb(200, 54, 54); /* The Fallback */
    background-color: rgba(200, 54, 54, 0.5); 
}
Другие вопросы по тегам