Sass / Compass - Konvertiert Hex, RGB oder Named Color in RGBA


84

Dies mag Compass 101 sein, aber hat jemand ein Mixin geschrieben, das den Alpha-Wert einer Farbe festlegt? Idealerweise möchte ich, dass das Mixin jede Form der Farbdefinition annimmt und Transparenz anwendet:

@include set-alpha( red, 0.5 );          //prints rgba(255, 0, 0, 0.5);
@include set-alpha( #ff0000, 0.5 );      //prints rgba(255, 0, 0, 0.5);
@include set-alpha( rgb(255,0,0), 0.5 ); //prints rgba(255, 0, 0, 0.5);

Antworten:


177

Verwenden Sie die rgbain Sass integrierte Funktion

Legt die Deckkraft einer Farbe fest.

Beispiele:

rgba (# 102030, 0,5) => rgba (16, 32, 48, 0,5)
rgba (blau, 0,2) => rgba (0, 0, 255, 0,2)

Parameter:
(Farbe) Farbe
(Zahl) Alpha - Eine Zahl zwischen 0 und 1

Rückgabe:
(Farbe)

Code:

rgba(#ff0000, 0.5); // Output is rgba(255,0,0,0.5);

4
Ich kann nicht glauben, dass ich das nicht einfach versucht habe. Vielen Dank max
Pat Newell

@jon kannst du näher erläutern, was an meiner Antwort verwirrend war, damit ich sie verbessern kann?
Maxbeatty

@maxbeatty Ich bin mir nicht sicher, was mit meinem Kommentar passiert ist, aber ich war durch das "==>" verwirrt ... es scheint im Nachhinein offensichtlich, aber wenn Sie sich verloren fühlen, ist es wirklich schwierig, den erforderlichen Code aus den Kommentaren zu unterscheiden. Ich denke, es könnte klarer gemacht werden, indem nur tatsächlich verwendbarer Code in die Codeblöcke aufgenommen wird.
Jon

@jon Das Blockzitat stammt direkt aus der Sass-Dokumentation. Anstatt nur auf die entsprechende integrierte Funktion zu verlinken. Ich dachte, es wäre hilfreich, die zugehörige Dokumentation in die Antwort aufzunehmen. Entschuldigung, das war verwirrend.
Maxbeatty

oh DUH. Arrg. Schauen Sie immer in die Schachtel, bevor Sie versuchen, außerhalb davon zu denken. Meine Güte!
Dudewad

8

Ich benutze das rgbapng Kompass Plugin

rgbapng ist ein Compass-Plugin für die browserübergreifende * RGBA-Unterstützung. Für Browser, die RGBA nicht unterstützen, werden im Handumdrehen Alpha-transparente PNGs mit einem Pixel erstellt. Es verwendet die reine Ruby ChunkyPNG-Bibliothek, was eine problemlose Installation und Bereitstellung ermöglicht.

Installieren

gem install compass-rgbapng

Verwendung

@include rgba-background(rgba(0,0,0,0.75));

Kompiliert zu:

background: url('/images/rgbapng/000000bf.png?1282127952');
background: rgba(0, 0, 0, 0.75);

whoa ... großartig. Ich bin überwältigt von der Kraft des Kompasses. Vielen Dank für die Antwort
Pat Newell

6

Die rgba-Funktion funktioniert nicht bei Farben ohne Transparenz, sondern gibt erneut ein Hex zurück. Schließlich ist es nicht dazu gedacht, Hex in RGBA umzuwandeln, wir machen nur Gewinn aus Hex, das Alpha (noch) nicht zulässt.

rgba(#fff, 1) // returns #fff

Also habe ich alle kleinen Funktionen erstellt, die den RGB-String erstellen. Ich muss mich vorerst nicht mit Transparenzen befassen.

@function toRGB ($color) {
    @return "rgb(" + red($color) + ", " + green($color) + ", " + blue($color)+ ")";
}

2

Es gibt auch ie-hex-str () für das ## AARRGGBB-Format des IE:

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str(#fdfdfd)}', endColorstr='#{ie-hex-str(#f6f6f6)}',GradientType=0); /* IE6-9 */

2
from_hex(hex_string, alpha = nil);

Aus der Dokumentation :

Erstellen Sie eine neue Farbe aus einer gültigen CSS-Hex-Zeichenfolge. Der führende Hash ist optional.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.