Ich weiß, dass du schreiben kannst ...
background-color: #ff0000;
... wenn Sie etwas wollen, das rot ist.
Und du kannst schreiben ...
background-color: rgba(255, 0, 0, 0.5);
... wenn Sie etwas Rotes und Durchscheinendes wollen.
Gibt es eine knappe Möglichkeit, teilweise transparente Farben hexadezimal zu schreiben? Ich möchte so etwas wie:
background-color: #ff000088; <--- the 88 is the alpha
... oder ...
background-color: #ff0000 50%;
Ich bekomme alle meine Farben hexadezimal und es ist ärgerlich, sie alle in die Dezimalskala 0-255 konvertieren zu müssen.
rgb(0xff,\x80,#44)
erstaunlich scheint Octal Darstellung ein wenig nach Yorkrgb(0100, 0200,0300)
ist#4080C0
background-color: opacify(#ff0000, 0.5);
oderbackground-color: transparentize(#ff0000, 0.5);
Sie können diesen Sass-Funktionen auch Sass-Hex-Farbvariablen bereitstellen.Antworten:
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!
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
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.
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 Wertergba()
.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 ).
quelle
/* Fall... foward? */
»Ich schlage vor, vorwärts zu springen. Fallback und Jumpforward: ^ pIch habe die Antwort gefunden, nachdem ich die Erweiterung der Frage veröffentlicht habe. Es tut uns leid!
MS Excel hat geholfen!
Fügen Sie einfach das Hex-Präfix zum Hex-Farbwert hinzu, um ein Alpha hinzuzufügen, das die entsprechende Deckkraft wie der% -Wert hat.
(in rbga wird die prozentuale Opazität wie oben erwähnt als Dezimalzahl ausgedrückt)
quelle
#FF00000C
gleichbedeutend mitrgba(255,0,0,0.05)
?#000000
wird#7F000000
.quelle
var rgb = '#ffabcd'; var a = '0.5'; var matches = rgb.match(/#([\da-f]{2})([\da-f]{2})([\da-f]{2})/i); var rgba = 'rgba(' + matches.slice(1).map(function(m) { return parseInt(m, 16); }).concat(a) + ')';
<div style={ { backgroundColor: `rgba(${ parseInt(color.substring(1,3),16) }, ${ parseInt(color.substring(3,5),16) }, ${ parseInt(color.substring(5,7),16) }, 0.5)` } }></div>
Siehe hier http://www.w3.org/TR/css3-color/#rgba-color
Dies ist höchstwahrscheinlich nicht möglich, da 0xFFFFFFFF größer als der Maximalwert für 32-Bit-Ganzzahlen ist
quelle
#ffffff
(sechs hexadezimale Ziffern) ist tatsächlich ein 24-Bit- Farbwert. 0xFFFFFFFF ist tatsächlich 2³² - 1 und kann als vorzeichenlose 32-Bit-Ganzzahl dargestellt werden. Ich denke, der Grund, warum#ffffffff
(acht hexadezimale Ziffern) nicht angegeben wird, ist sowohl, dass CSS-Farben im sRGB-Farbraum verwurzelt sind, als auch, dass eine acht hexadezimale Notation mit einem Anzeigegerät, das eine Farbtiefe von 32 Bit unterstützt, nicht eindeutig wäre. Denken Sie daran, dass es immer noch#fff
so gibt, dass esrgb(100%, 100%, 100%)
- weiß - sowohl mit einer Farbtiefe von 8 Bit (256 Farben) als auch 16 Bit (65536 oder 64K Farben) bedeutet.Chrome 52+ unterstützt Alpha Hex:
quelle
¯\_(ツ)_/¯
Verwenden Sie
red
,green
,blue
um RGBA zu konvertieren:quelle
Ich fürchte, das ist nicht möglich. Das
rgba
Format, das Sie kennen, ist das einzige.quelle
Wenn Sie WENIGER verwenden können, gibt es eine Überblendfunktion.
quelle
rgba(base-color, 0.5)
Charmanter Prinz:
Nur der Internet Explorer erlaubt die 4-Byte-Hex-Farbe im ARGB-Format, wobei A der Alpha-Kanal ist. Es kann zum Beispiel in Verlaufsfiltern verwendet werden:
Wobei dir sein kann: 1 (horizontal) oder 0 (vertikal) Und die Farbketten können hexadezimale Farben (# FFAAD3) oder argb hexadezimale Farben (# 88FFAAD3) sein.
quelle
Nun, verschiedene Farbnotationen müssen Sie lernen.
Kuler gibt Ihnen eine bessere Chance, Farbe und in mehreren Notationen zu finden.
Hex unterscheidet sich nicht von RGB, FF = 255 und 00 = 0, aber das wissen Sie. In gewisser Weise muss man es sich vorstellen.
Ich benutze Hex, RGBA und RGB. Wenn keine Massenkonvertierung erforderlich ist, können Sie sich bei manueller Ausführung einige ungerade 100 Farben und deren Codes merken.
Für die Massenkonvertierung schreiben Sie ein Skript wie das von Alarie. Viel Spaß mit Farben.
quelle
warum nicht verwenden
background-color: #ff0000; opacity: 0.5; filter: alpha(opacity=50); /* in IE */
Wenn Sie eine Farbe für einen Text oder wahrscheinlich ein Element auswählen, sollte dies viel einfacher sein.
quelle
opacity
CSS-Eigenschaft.