Das CSS-Farbmodul Level 4 unterstützt wahrscheinlich die 4- und 8-stellige hexadezimale RGBA-Notation!
Vor drei Wochen (18. Dezember 2014) wurde der Entwurf des CSS Color Module Level 4-Editors der CSS W3C-Arbeitsgruppe vorgelegt. Obwohl in einem Zustand, der Änderung stark anfällig ist, impliziert die aktuelle Version des Dokuments , das in der etwas nahen Zukunft CSS wird sowohl die 4 und 8-stellige hexadezimale Notation RGBA unterstützen.
Hinweis: Im folgenden Zitat sind irrelevante Abschnitte ausgeschnitten, und die Quelle wurde zum Zeitpunkt des Lesens möglicherweise stark geändert (wie oben erwähnt handelt es sich um einen Entwurf des Herausgebers und nicht um ein endgültiges Dokument).
Wenn sich die Dinge stark geändert haben, hinterlassen Sie bitte einen Kommentar, damit ich diese Antwort aktualisieren kann!
§ 4.2. Die hexadezimalen RGB-Notationen: #RRGGBB
Die Syntax von a <hex-color>
ist ein <hash-token>
Token, dessen Wert aus 3, 4, 6 oder 8 hexadezimalen Ziffern besteht . Mit anderen Worten, eine Hex-Farbe wird als Hash-Zeichen "#" geschrieben, gefolgt von einer Anzahl von Ziffern 0-9
oder Buchstaben a-f
(der Fall der Buchstaben spielt keine Rolle - #00ff00
ist identisch mit #00FF00
).
8 Ziffern
Die ersten 6 Ziffern werden identisch mit der 6-stelligen Notation interpretiert. Das letzte Ziffernpaar, das als Hexadezimalzahl interpretiert wird, gibt den Alphakanal der Farbe an, wobei 00
eine vollständig transparente Farbe und ff
eine vollständig undurchsichtige Farbe dargestellt wird.
Beispiel 3
Mit anderen Worten, #0000ffcc
repräsentiert die gleiche Farbe wie rgba(0, 0, 100%, 80%)
(ein leicht transparentes Blau).
4 Ziffern
Dies ist eine kürzere Variante der 8-stelligen Notation, die auf die gleiche Weise wie die 3-stellige Notation "erweitert" wird. Die erste Ziffer, die als Hexadezimalzahl interpretiert wird, gibt den roten Kanal der Farbe an, wobei 0
der minimale Wert und f
der maximale Wert dargestellt werden. Die nächsten drei Ziffern stehen für die grünen, blauen und Alpha-Kanäle.
Was bedeutet das für die Zukunft der CSS-Farben?
Unter der Annahme, dass dies nicht vollständig aus dem Level 4-Dokument entfernt wurde, können wir unsere RGBA-Farben (oder HSLA-Farben, wenn Sie einer dieser Typen sind) in Browsern, die die Farbe unterstützen , bald im hexadezimalen Format definieren Syntax von Modul Level 4.
Beispiel
elem {
background: rgb(0, 0, 0); /* RGB notation (no alpha). */
background: #000; /* 3-digit hexadecimal notation (no alpha). */
background: #000000; /* 6-digit hexadecimal notation (no alpha). */
background: rgba(0, 0, 0, 1.0); /* RGBA notation. */
/* The new 4 and 8-digit hexadecimal notation. */
background: #0000; /* 4-digit hexadecimal notation. */
background: #00000000; /* 8-digit hexadecimal notation. */
}
Wann kann ich dies in meinen kundenorientierten Produkten verwenden?
Abgesehen von allen Witzen: Es ist derzeit erst Anfang 2015, daher werden diese noch einige Zeit in keinem Browser unterstützt - auch wenn Ihr Produkt nur für die aktuellsten Browser ausgelegt ist, die Sie wahrscheinlich verwenden werden Sie werden dies in Kürze nicht mehr in einem Produktionsbrowser in Aktion sehen.
Aktuelle Browserunterstützung für die Farbnotation #RRGGBBAA anzeigen
Die Art und Weise, wie CSS funktioniert, bedeutet jedoch, dass wir diese heute tatsächlich verwenden können! Wenn Sie sie jetzt wirklich verwenden möchten, ignorieren nicht unterstützende Browser die neuen Eigenschaften einfach, bis sie als gültig erachtet werden, solange Sie einen Fallback hinzufügen.
figure {
margin: 0;
padding: 4px;
/* Fall back (...to browsers which don't support alpha transparency). */
background: #FEFE7F;
color: #3F3FFE;
/* Current 'modern' browser support. */
background: rgba(255, 255, 0, 0.5);
color: rgba(0, 0, 255, 0.75);
/* Fall... foward? */
background: #ffff007F; /* Or, less accurately, #ff08 */
color: #0000ffbe; /* Or #00fc */
}
<figure>Hello, world!</figure>
Solange Sie diese Antwort in einem Browser anzeigen, der das unterstützt background
color
anzeigen, der Eigenschaften und in CSS unterstützt, <figure>
sieht das Ergebnis des obigen Snippets sehr ähnlich aus:
Verwenden Sie die neueste Version von Chrome unter Windows (v39.0.2171), um unsere zu überprüfen <figure>
Element , sehen Sie Folgendes:
Der 6-stellige hexadezimale Fallback wird durch das überschrieben rgba()
Werten , und unsere 8-stelligen hexadezimalen Werte werden ignoriert, da sie derzeit vom CSS-Parser von Chrome als ungültig eingestuft werden. Sobald unser Browser diese 8-stelligen Werte unterstützt, überschreiben diese die Werte rgba()
.
UPDATE 2018-07-04: Firefox, Chrome und Safari unterstützen diese Notation jetzt. Edge fehlt noch, wird aber wahrscheinlich folgen ( https://caniuse.com/#feat=css-rrggbbaa ).
rgb(0xff,\x80,#44)
erstaunlich scheint Octal Darstellung ein wenig nach Yorkrgb(0100, 0200,0300)
ist#4080C0