Szesnastkowa reprezentacja koloru z kanałem alfa?

117

Czy istnieje W3 lub inny godny uwagi standard dotyczący przedstawiania koloru (w tym kanału alfa) w formacie szesnastkowym?

Czy to #RGBA czy #ARGB?

Patrick Klug
źródło
8
Nadchodzi w źródle CSS Color Level 4 (patrz punkt czwarty)
Šime Vidas
@ ŠimeVidas, gdybyś ujął to w odpowiedzi, zagłosowałbym za tobą.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
@cirosantilli Czy wygląda na to, że potrzebuję przedstawiciela? :-P
Šime Vidas,
1
@ ŠimeVidas lol, jeśli chcesz się czymś podzielić, to ... =)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Jest tutaj podobne pytanie specyficzne dla CSS
James Donnelly,

Odpowiedzi:

82

W CSS 3, cytując ze specyfikacji, „nie ma notacji szesnastkowej dla wartości RGBA” (patrz specyfikacja CSS Level 3 ). Zamiast tego możesz użyć notacji funkcjonalnej rgba () z liczbami dziesiętnymi lub procentami, np. Rgba (255, 0, 0, 0,5) będzie w 50% przezroczysty czerwony. Kanały RGB to 0-255 lub 0% -100%, alfa to 0-1.

W CSS 4 * możesz określić kanał alfa za pomocą 7 i 8 znaku 8-cyfrowego koloru szesnastkowego lub 4-tego znaku 4-cyfrowego koloru szesnastkowego (patrz specyfikacja CSS Level 4 *)

Można oczekiwać, że od maja 2019 r.> 80% użytkowników będzie rozumieć format #RGBA

  • Firefox obsługuje tę składnię od wersji Firefox 49 ( błąd Mozilli 567283 ).
  • Safari obsługuje tę składnię od wersji Safari 10.
  • Chrome obsługuje tę składnię od wersji Chrome 62. We wcześniejszych wersjach można było włączyć eksperymentalne funkcje internetowe, aby używać tej składni. Zobacz problem Chromium 618472 i błąd Webkit 150853 .
  • Aplikacje na Androida przeznaczone dla systemu Android P lub nowszego mogą używać tej składni
  • Opera obsługuje tę składnię w Operze 52 (lub Operze 39, gdy włączone są eksperymentalne funkcje sieciowe).
  • IE 11 i EdgeHTML 18 (Edge 44) nie obsługują tej składni. Wersje Edge oparte na Chromium będą obsługiwać tę składnię.

Aktualne informacje o obsłudze przeglądarek są dostępne na CanIUse.com

* Technicznie wciąż jest w wersji roboczej, ale biorąc pod uwagę obsługę przeglądarki, prawdopodobnie nie zostanie to zmienione.

thelem
źródło
2
Obecnie wydaje się, że Mozilla (Firefox 49) obsługuje #RRGGBBAA i #RGBA
Shiyaz
92

Wygląda na to, że nie ma szesnastkowego formatu alfa: http://www.w3.org/TR/css3-color/

W każdym razie, jeśli używasz preprocesora CSS, takiego jak SASS, możesz przekazać hex do rgba: background:

rgba(#000, 0.5);

Preprocesor po prostu automatycznie konwertuje kod szesnastkowy na rgb.

guitarranalon
źródło
15

Nie jestem pewien, czy istnieje oficjalny standard

RGBA to reprezentacja, którą widziałem dla Web Macromedia, a inne używają ARGB

Uważam, że RGBA jest bardziej powszechną reprezentacją.

Jeśli to pomaga, pochodzi z W3 dla CSS3
http://www.w3.org/TR/css3-color/#rgba-color

EDYCJA (Patrick): cytat z powyższego linku W3

W przeciwieństwie do wartości RGB, nie ma notacji szesnastkowej dla wartości RGBA

Kelly Gendron
źródło
2
Ponadto funkcja CSS służąca do określania kolorów za pomocą alf to rgba ()
Amber,
8
z podanego linku W3: W przeciwieństwie do wartości RGB, dla wartości RGBA nie ma notacji szesnastkowej.
Patrick Klug,
2
Widziałem już # RGB, A wcześniej. Dziwne.
Joshua
W przypadku rysunków na Androida wygląda na to, że jest to ARGB: developer.android.com/reference/android/graphics/drawable/ ...
Derek Kurth
10

Chrome 52+ obsługuje alpha hex:

background: #56ff0077;

W przypadku starszych przeglądarek będziesz musiał użyć:

background-color: rgba(255, 220, 0, 0.3);
Oded Breiner
źródło
3
Nie, chyba że włączysz eksperymentalne funkcje internetowe, ponieważ powodowało to problemy w systemie Android. Zobacz moją odpowiedź powyżej, aby uzyskać szczegółowe informacje dotyczące obsługi przeglądarki.
thelem
3

Możesz spróbować umieścić kolor szesnastkowy w próbniku kolorów GIMP lub sklepie fotograficznym, aby uzyskać wartość RGB, a następnie użyć wartości alfa. na przykład. czerwony to #FF0000lub rgb(255,0,0), jeśli chcesz mieć kolor czerwony z wartością alfa równą 0,5 rgba(255,0,0,.5).

Może nie dokładnie to, czego chciałeś, ale mam nadzieję, że pomoże.

Jinjubei
źródło
1
To zostało odrzucone, co wydaje się nieco surowe. Nie odpowiada na zadane pytanie, ale pytanie nie mówi, dlaczego chcą wiedzieć. Jeśli chcą po prostu użyć koloru RGBA w CSS, to ta odpowiedź jest poprawna.
thelem