2013-01-24 8 views
6

Ist es möglich, eine Farbe in CSS nach ihrem Namen plus einem Alpha-Transparenzwert zu definieren?CSS-Farbnamen + Alphatransparenz

Ie:

#mytext { color: red 0.5 } 

anstatt zurückgreifen wie

#mytext { color: rgba(255,0,0,0.5) } 

Antwort

2

Sie erreichen das Ergebnis wollen Sie auf diese Weise:

#mytext{ 
    color: red; 
    opacity: 0.5; 
} 

Beachten Sie, dass Opazität das gesamte Element beeinflussen, nicht nur den Text, so zum Beispiel, wenn das #mytext Element eine Hintergrundfarbe hat, dass auch den Durchlässigkeitswert erhalten würde von 0,5

Allerdings stimme ich Dai zu, die Verwendung von Farbnamen anstelle von hex oder rgb Codes ist nicht etwas, auf das Sie sich zu sehr verlassen sollten. Es ist eine hässliche Farbpalette, mit der man arbeiten kann.

8

Nein, die CSS-Spezifikation nur Farben RGBA ermöglicht mit Namen angegeben werden, hexadezimale Darstellung von RGB oder mit dem rgb(r,g,b) und rgba(r,g,b,a) Funktionen. Jede Nutzung ist gegenseitig exklusiv.

Ref: http://www.w3.org/TR/CSS2/syndata.html#value-def-color

Farbnamen sind weniger nützlich als noch in den Tagen CSS1.x waren, weil die genannten Farben (mit Ausnahme von orange) sind alle Mitglieder der alten „16-Farben“ Palette anzeigen und in der Regel heute hässlich aussehen.

Wenn Sie Farbnamen verwenden Lesbarkeit dann Kommentare zu verbessern verwenden, etwa so:

color: rgb(0,0,0); /* black */ 

(setzen Sie den Kommentar nach dem Semikolon, weil viele CSS-Editoren nur Kommentare erhalten, wenn sie außerhalb gelegen ist von Eigenschaftsdeklarationen).

CSS3 fügt mehr mit dem Namen-Farben, einschließlich der 24-Bit-X11-Farbsatz, sowie die hsl(h,s,l) Funktion, aber immer noch nicht das Mischen von named-Farben und Opazität Werte erlaubt: http://www.w3.org/TR/css3-color/