CSS3-Transparenz + Farbverlauf


286

RGBA macht extrem viel Spaß, und so ist es -webkit-gradientauch -moz-gradient, und äh ... progid:DXImageTransform.Microsoft.gradient... ja. :) :)

Gibt es eine Möglichkeit, die beiden, RGBA und Gradienten, so zu kombinieren, dass ein Gradient der Alpha-Transparenz unter Verwendung der aktuellen / neuesten CSS-Spezifikationen entsteht?


1
Der Kommentar von @ geo1701 sollte akzeptiert werden, da er für die modernen Standards relevanter ist.
Dmytro Shevchenko

Antworten:


326

Ja. Sie können rgba sowohl in Webkit- als auch in Moz-Gradientendeklarationen verwenden:

/* webkit example */
background-image: -webkit-gradient(
  linear, left top, left bottom, from(rgba(50,50,50,0.8)),
  to(rgba(80,80,80,0.2)), color-stop(.5,#333333)
);

( src )

/* mozilla example - FF3.6+ */
background-image: -moz-linear-gradient(
  rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 95%
);

( src )

Anscheinend können Sie dies sogar im IE tun, indem Sie eine ungerade "Extended Hex" -Syntax verwenden. Das erste Paar (im Beispiel 55) bezieht sich auf den Grad der Opazität:

/* approximately a 33% opacity on blue */
filter: progid:DXImageTransform.Microsoft.gradient(
  startColorstr=#550000FF, endColorstr=#550000FF
);

/* IE8 uses -ms-filter for whatever reason... */
-ms-filter: progid:DXImageTransform.Microsoft.gradient(
  startColorstr=#550000FF, endColorstr=#550000FF
);

( src )


20
Zu Ihrer Information, "erweitertes Hex" ist nur 32-Bit-ARGB anstelle von 24-Bit-RGB-Farbwerten.
Macke

2
Ich möchte, dass diese auch in Standard-CSS funktionieren, aber mit dem Alpha am Ende (scheint natürlicher zu sein): #0001wäre kurzes Hex für „fast transparentes Schwarz“ und #ffcc00ffwäre dasselbe wie #ffcc00„völlig undurchsichtiges Mandarinengelb“.
fliegende Schafe

56
Schauen Sie sich auch den CSS3-Verlaufsgenerator bei Colorzilla an, der eine Reihe netter Voreinstellungen und alle browserübergreifenden kompatiblen Variationen enthält, um den gewünschten Verlauf zu erzielen
andrhamm

Also, ich habe es ausgecheckt, funktioniert in allen gängigen Browsern, aber es funktioniert nicht in der Oper, gibt es einen Hinweis?
WhoSayIn

egal, ich habe es gerade gefunden;)background-image: -o-linear-gradient(top,rgba(255,255,255,0),rgba(210, 230, 250,1));
WhoSayIn

101

Neue Syntax wird seit einiger Zeit von allen modernen Browsern unterstützt (ab Chrome 26, Opera 12.1, IE 10 und Firefox 16): http://caniuse.com/#feat=css-gradients

background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));

Dadurch wird ein Farbverlauf von festem Schwarz oben bis vollständig transparent unten dargestellt.

Dokumentation zu MDN .


7
.. erzeugt festes Schwarz oben bis vollständig transparent unten
Commonpike

Ich nehme an, das ist ein Vorschlag und funktioniert nicht wirklich?
Bart

15

Das sind wirklich coole Sachen! Ich brauchte so ziemlich das Gleiche, aber mit einem horizontalen Farbverlauf von weiß nach transparent. Und es funktioniert gut! Hier ist mein Code:

.gradient{
        /* webkit example */
        background-image: -webkit-gradient(
          linear, right top, left top, from(rgba(255, 255, 255, 1.0)),
          to(rgba(255, 255, 255, 0))
        );

        /* mozilla example - FF3.6+ */
        background-image: -moz-linear-gradient(
          right center,
          rgba(255, 255, 255, 1.0) 20%, rgba(255, 255, 255, 0) 95%
        );

        /* IE 5.5 - 7 */
        filter: progid:DXImageTransform.Microsoft.gradient(
          gradientType=1, startColor=0, endColorStr=#FFFFFF
        );

        /* IE8 uses -ms-filter for whatever reason... */
        -ms-filter: progid:DXImageTransform.Microsoft.gradient(
          gradientType=1, startColor=0, endColoStr=#FFFFFF
        );
    }

1
Als Referenz ist in der Microsoft-Implementierung gradientType = 1 horizontal und 0 vertikal.
Brooks

Die IE7- und IE8-Verläufe geben keine Alpha-Farbe an? Verblassen sie wirklich zu transparent?
KajMagnus

3

Hier ist mein Code:

background: #e8e3e3; /* Old browsers */
  background: -moz-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%, rgba(246, 242, 242, 0.95) 100%); /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(232, 227, 227, 0.95)), color-stop(100%,rgba(246, 242, 242, 0.95))); /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* Opera 11.10+ */
  background: -ms-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* IE10+ */
  background: linear-gradient(to bottom,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='rgba(232, 227, 227, 0.95)', endColorstr='rgba(246, 242, 242, 0.95)',GradientType=0 ); /* IE6-9 */

3
#grad
{
    background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /*Safari 5.1-6*/
    background: -o-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Opera 11.1-12*/
    background: -moz-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Fx 3.6-15*/
    background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /*Standard*/
}

Ich fand dies in w3schools und passte zu meinen Bedürfnissen, während ich nach Farbverlauf und Transparenz suchte. Ich stelle den Link zur Verfügung, um auf w3schools zu verweisen. Ich hoffe, dies hilft, wenn jemand nach Farbverlauf und Transparenz sucht.

http://www.w3schools.com/css/css3_gradients.asp

Außerdem habe ich es in w3schools versucht, die Deckkraft zu ändern, indem der Link eingefügt und überprüft wurde

http://www.w3schools.com/css/tryit.asp?filename=trycss3_gradient-linear_trans

Ich hoffe es hilft.


1

Das Folgende ist das, mit dem ich einen vertikalen Farbverlauf von vollständig undurchsichtig (oben) bis 20% Transparenz (unten) für dieselbe Farbe generiere :

background: linear-gradient(to bottom, rgba(0, 64, 122, 1) 0%,rgba(0, 64, 122, 0.8) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
background: -o-linear-gradient(top, rgba(0, 64, 122, 1) 0%, rgba(0, 64, 122, 0.8) 100%); /* Opera 11.10+ */
background: -moz-linear-gradient(top, rgba(0, 64, 122, 1) 0%, rgba(0, 64, 122, 0.8) 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(top, rgba(0, 64, 122, 1) 0%,rgba(0, 64, 122, 0.8) 100%); /* Chrome10-25,Safari5.1-6 */
background: -ms-linear-gradient(top, rgba(0, 64, 122, 1) 0%,rgba(0, 64, 122, 0.8) 100%); /* IE10+ */
-ms-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00407a', endColorstr='#cc00407a',GradientType=0 ); /* IE8 */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00407a', endColorstr='#cc00407a',GradientType=0 ); /* IE 5.5 - 9 */

0

Ich bin gerade auf dieses neuere Beispiel gestoßen. Um die neuesten Beispiele zu vereinfachen und zu verwenden, geben Sie dem CSS eine Auswahlklasse von 'grad' (ich habe die Abwärtskompatibilität aufgenommen).

.grad {
    background-color: #F07575; /* fallback color if gradients are not supported */
    background-image: -webkit-linear-gradient(top left, red, rgba(255,0,0,0));/* For Chrome 25 and Safari 6, iOS 6.1, Android 4.3 */
    background-image: -moz-linear-gradient(top left, red, rgba(255,0,0,0));/* For Firefox (3.6 to 15) */
    background-image: -o-linear-gradient(top left, red, rgba(255,0,0,0));/* For old Opera (11.1 to 12.0) */
    background-image: linear-gradient(to bottom right, red, rgba(255,0,0,0)); /* Standard syntax; must be last */
}

von https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient

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.