Representasi hex warna dengan alpha channel?

117

Apakah ada W3 atau standar penting lainnya tentang cara merepresentasikan warna (termasuk saluran alfa) dalam format hex?

Apakah #RGBA atau #ARGB?

Patrick Klug
sumber
8
Itu datang di CSS Color Level 4 sumber (lihat poin-poin keempat)
SIME Vidas
@ ŠimeVidas jika Anda menjawabnya, saya akan memberi suara positif untuk Anda.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
@cirosantilli Apakah saya terlihat seperti saya membutuhkan perwakilan? :-P
Šime Vidas
1
@ ŠimeVidas lol, jika Anda ingin berbagi beberapa maka ... =)
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Ada pertanyaan khusus CSS serupa tentang ini di sini: CSS hexidecimal RGBA?
James Donnelly

Jawaban:

82

Dalam CSS 3, mengutip dari spesifikasi, "tidak ada notasi heksadesimal untuk nilai RGBA" (lihat spesifikasi CSS Level 3 ). Sebagai gantinya Anda dapat menggunakan notasi fungsional rgba () dengan desimal atau persentase, misalnya rgba (255, 0, 0, 0.5) akan menjadi merah transparan 50%. Saluran RGB 0-255 atau 0% -100%, alpha 0-1.

Di CSS 4 *, Anda dapat menentukan saluran alfa menggunakan karakter ke-7 dan ke-8 dari warna hex 8 digit, atau karakter ke-4 dari warna hex 4 digit (lihat spesifikasi CSS Level 4 *)

Mulai Mei 2019,> 80% pengguna diharapkan memahami format #RGBA

  • Firefox telah mendukung sintaks ini sejak Firefox 49 ( bug Mozilla 567283 ).
  • Safari telah mendukung sintaks ini sejak Safari 10.
  • Chrome telah mendukung sintaks ini sejak Chrome 62. Untuk versi sebelumnya, Anda dapat mengaktifkan fitur web eksperimental untuk menggunakan sintaks ini. Lihat Masalah Chromium 618472 dan bug Webkit 150853 .
  • Aplikasi Android yang menargetkan Android P atau yang lebih baru dapat menggunakan sintaks ini
  • Opera mendukung sintaks ini di Opera 52 (atau Opera 39 saat fitur web eksperimental diaktifkan).
  • IE 11 dan EdgeHTML 18 (Edge 44) tidak mendukung sintaks ini. Versi Edge berbasis Chromium akan mendukung sintaks ini.

Informasi dukungan browser terbaru tersedia di CanIUse.com

* Secara teknis masih dalam bentuk draf, tetapi mengingat dukungan browser, hal ini tidak mungkin diubah.

thelem
sumber
2
Sampai sekarang, Mozilla (Firefox 49) muncul untuk mendukung #RRGGBBAA dan #RGBA
Shiyaz
92

Sepertinya tidak ada format hex alpha: http://www.w3.org/TR/css3-color/

Bagaimanapun, jika Anda menggunakan praprosesor CSS seperti SASS maka Anda dapat mengirimkan hex ke rgba: background:

rgba(#000, 0.5);

Dan preprocessor hanya mengubah kode hex menjadi rgb secara otomatis.

guitarranalon.dll
sumber
15

Saya tidak yakin apakah ada standar resmi-

RGBA adalah representasi yang saya lihat untuk Web Macromedia dan yang lainnya menggunakan ARGB

Saya percaya bahwa RGBA adalah representasi yang lebih umum.

Jika membantu, ini dari W3 untuk CSS3
http://www.w3.org/TR/css3-color/#rgba-color

EDIT (Patrick): kutipan dari link W3 di atas

Tidak seperti nilai RGB, tidak ada notasi heksadesimal untuk nilai RGBA

Kelly Gendron
sumber
2
Selain itu, fungsi CSS untuk menentukan warna dengan alfa adalah rgba ()
Amber
8
dari tautan W3 yang Anda kirim: Tidak seperti nilai RGB, tidak ada notasi heksadesimal untuk nilai RGBA.
Patrick Klug
2
Saya pernah melihat # RGB, A sebelumnya. Aneh.
Joshua
Untuk Android yang dapat digambar, tampaknya ARGB: developer.android.com/reference/android/graphics/drawable/…
Derek Kurth
10

Chrome 52+ mendukung alpha hex:

background: #56ff0077;

Untuk browser lama, Anda harus menggunakan:

background-color: rgba(255, 220, 0, 0.3);
Oded Breiner
sumber
3
Tidak, tidak, kecuali Anda mengaktifkan fitur web eksperimental, karena itu menyebabkan masalah pada Android. Lihat jawaban saya di atas untuk detail dukungan browser.
thelem
3

Anda dapat mencoba memasukkan warna hex ke dalam pemilih warna GIMP atau toko foto untuk mendapatkan nilai RGB dan kemudian menggunakan nilai alpha. misalnya. merah adalah #FF0000atau rgb(255,0,0) jika Anda ingin merah dengan nilai alpha 0,5 lalu rgba(255,0,0,.5).

Mungkin tidak persis seperti yang Anda inginkan tetapi mudah-mudahan bisa membantu.

Jinjubei
sumber
1
Ini ditolak, yang tampaknya agak kasar. Itu tidak menjawab pertanyaan yang diajukan, tetapi pertanyaan itu tidak menjelaskan mengapa mereka ingin tahu. Jika mereka hanya ingin menggunakan warna RGBA di CSS, maka jawaban ini benar.
thelem