Anknüpfend an brillout.com's Antwort und auch Roman Nuriks Antwort und die Anforderung "kein SVG" etwas zu lockern, können Sie Bilder in Firefox mit nur einer einzigen SVG-Datei und etwas CSS entsättigen.
Ihre SVG-Datei wird wie folgt aussehen:
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1"
baseProfile="full"
xmlns="http://www.w3.org/2000/svg">
<filter id="desaturate">
<feColorMatrix type="matrix" values="0.3333 0.3333 0.3333 0 0
0.3333 0.3333 0.3333 0 0
0.3333 0.3333 0.3333 0 0
0 0 0 1 0"/>
</filter>
</svg>
Speichern Sie die Datei unter dem Namen resources.svg. Sie kann von nun an für jedes Bild, das Sie in Graustufen umwandeln möchten, wiederverwendet werden.
In Ihrem CSS referenzieren Sie den Filter mit dem Firefox-spezifischen filter
Eigentum:
.target {
filter: url(resources.svg#desaturate);
}
Fügen Sie auch die MS-eigenen hinzu, wenn Sie Lust dazu haben, Wenden Sie diese Klasse auf jedes Bild an, das Sie in Graustufen umwandeln möchten (funktioniert in Firefox >3.5, IE8) .
editar : Hier ist ein schöner Blogbeitrag die die Verwendung des neuen CSS3 filter
Eigenschaft in der Antwort von SalmanPK in Verbindung mit dem hier beschriebenen SVG-Ansatz. Mit diesem Ansatz würden Sie mit etwas wie enden:
img.desaturate{
filter: gray; /* IE */
-webkit-filter: grayscale(1); /* Old WebKit */
-webkit-filter: grayscale(100%); /* New WebKit */
filter: url(resources.svg#desaturate); /* older Firefox */
filter: grayscale(100%); /* Current draft standard */
}
Weitere Informationen zur Browserunterstützung hier .
14 Stimmen
"Es muss nicht IE-kompatibel sein (und ich nehme an, dass es das auch nicht sein wird)" ?? IE bietet eine Reihe von DX-Filter seit 1997 (IE4), die diese Aufgabe nur mit CSS und vielem mehr erledigt. Jetzt haben sie weggefallene DX-Filter im IE10 und halten sich strikt an die standardmäßigen SVG-basierten Filter. Vielleicht möchten Sie einen Blick werfen auf ce y diese Demo .
8 Stimmen
@vulcanraven Es ist nicht wirklich "nur CSS" - wenn Sie Active Scripting im IE deaktivieren, funktionieren die Filter nicht mehr.
3 Stimmen
@robertc, das ist genau richtig. Wenn Sie dagegen Javascript in einem beliebigen Browser deaktivieren, funktioniert fast jede RIA, einschließlich Stackoverflow, nicht mehr (es sei denn, die Webentwickler haben die HTML-only-Version als Fallback implementiert).
2 Stimmen
Verwenden Sie einfach die CSS stackoverflow.com/questions/286275/gray-out-image-with-css/ Meine Antwort auf diese Frage