2014-05-02 11 views
6

Ich habe folgendes div: JetztWie invertiert man Farben im Hintergrundbild eines HTML-Elements?

<div style="border-radius:50%; height:233px; width:423px; background-color:black; background-image:url(image2.gif);background-repeat:repeat; border:solid 1px; filter: invert(100%);-webkit-filter: invert(100%);"></div> 

enter image description here

, brauche ich die Farben des Hintergrundbildes invertieren es erscheinen wie zu machen: enter image description here

I

versucht mit

filter: invert(100%); -webkit-filter: invert(100%);

aber es invertiert die ganze div der Grenze einschließlich machen es wie folgt aussehen: enter image description here

Wie kann ich die Farben nur das Hintergrundbild invertieren als derjenigen des gesamten Elements entgegengesetzt?

Hinweis: Die obige div wird programmgesteuert generiert. Die Lösung, um die Farbe des Randes auch zu invertieren, muss ich das Programm ändern, um die Farbe des Randes zu invertieren, der in jedem Format (hex, rgb, rgba, hsl, hsla, Wörter usw.) sein kann und im Wesentlichen mein blähend Code. Wenn mir jedoch keine andere Option zur Verfügung steht, würde ich es tun, aber zuerst hoffe ich, dass ich eine einfachere Lösung finden kann.

+1

vielleicht das ist, wie Filter funktionieren .. versuchen 'border: 1px solid white' .., um es nach Invertierung schwarz zu machen. [** Geige **] (http://jsfiddle.net/KDq58/1/). –

+0

@Mr_Green Ich fürchte, ich kann das nicht tun. Alle Werte sind systemgeneriert und ich kann sie nicht ändern. –

+0

Keine gute Idee .. Verwenden Sie '! Wichtig ', um diese Stile zu überschreiben. Vielleicht ist das hier deine einzige Option. –

Antwort

6

Sie können den Hintergrund in einem Pseudo-Element festlegen und den Rahmen im div beibehalten.

Auf diese Weise wird der Filter nicht das Hauptelement beeinflussen

div { 
 
    border-radius:50%; 
 
    height:233px; 
 
    width:423px; 
 
    border:solid 1px green; 
 
    overflow: hidden; 
 
    position: relative; 
 
} 
 

 
div:after { 
 
    content: ""; 
 
    position: absolute; 
 
    width: 100%; 
 
    height: 100%; 
 
    background-color:black; 
 
    background-image:url(http://i.stack.imgur.com/xQi3T.png); 
 
    background-position: -21px -35px; 
 
    background-repeat:repeat; 
 
    filter: invert(100%); 
 
    -webkit-filter: invert(100%); 
 
}
<div></div>

Verwandte Themen