2016-07-31 9 views
3

Ich habe gerade diesen Artikel lesen getan: https://css-tricks.com/snippets/css/cross-browser-opacity/Cross-Browser Javascript Opazität Eigenschaften

Diese (irreführend?) Aussage mir auffiel: „In diesen Tagen haben Sie wirklich keine Sorgen über Opazität ein Wesen schwierige Sache Cross-Browser Sie nur die Opazität Eigenschaft verwenden, wie folgt aus:.

.thing { 
    opacity: 0.5; 
} 

"

gibt es nicht mehr eine Verwendung für:

.transparent_class { 
    /* IE 8 */ 
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; 

    /* IE 5-7 */ 
    filter: alpha(opacity=50); 

    /* Netscape */ 
    -moz-opacity: 0.5; 

    /* Safari 1.x */ 
    -khtml-opacity: 0.5; 

    /* Good browsers */ 
    opacity: 0.5; 
} 

?

Und warum ist es so schwer, JavaScript-Selektoren für alte Browser zu finden? Alles, was ich finden konnte, war "MozOpacity" hier: http://help.dottoro.com/ljdkioqd.php, und die Eigenschaft "filter.alpha" hier: http://help.dottoro.com/ljqtwlbv.php. Was ist mit dem khtml-Eigenschaftenselektor? Die Aussage in dem Artikel scheint mir irreführend zu sein, wenn für diese anderen Selektoren noch Gebrauch gemacht wird. Er lässt es so aussehen, als würde die Opazität plötzlich in jedem alten und neuen Browser funktionieren. Ich brauche nur eine Klarstellung (ich habe jede andere Frage zu StackOverflow hinsichtlich der Opazität cross-browser gelesen und nichts Bedeutendes gefunden).

< ----------------------------- UPDATE --------------- ------------------>

Ich habe alle Selektoren gefunden! Hier sind sie für jeden, der sie zu benutzen:

.style.opacity 
.style.MsFilter 
.style.filter.alpha 
.style.MozOpacity 
.style.KhtmlOpacity 

Hinweis: Wenn Sie die „MsFilter“ Eigenschaft mit:

.style.MsFilter = "\"progid:DXImageTransform.Microsoft.Alpha(opacity=1)\""; 
+5

In seltenen Fällen müssen Sie IE8 möglicherweise unterstützen, der Rest ist lange weg – LGSon

+0

Also nur um zu klären ... MozOpacity und khtmlOpacity sind heute völlig nutzlos und haben überhaupt keinen Zweck? Wenn ich versuche, die Deckkraft eines Elements mit Javascript zu verringern, sollte ich document.getElementById (""). Style.filter.alpha und document.getElementById (""). Style.opacity verwenden, um die Opazität des Elements für beide auszuwählen Browser? – Mangofett

+2

Verwenden Sie 'document.getElementById (" "). Style.opacity = ...' – LGSon

Antwort

3

Er macht es wie ganz plötzlich Opazität scheinen funktioniert in jeder Browser alt und neu.

Sie können Browser-Nutzungsstatistiken finden Sie hier:

http://caniuse.com/#feat=css-opacity

caniuse.com schätzt eine globale Benutzerbasis von 0,63% für IE8.

Die anderen Browser (IE7 und niedriger, Netscape und Safari 1) sind nicht aufgeführt.

+0

Es kommt also darauf an, wie viele Menschen es benutzen ... Es gibt also einen Zweck für diese Eigenschaftsselektoren, es gehört einfach nicht zu 99% der Bevölkerung, richtig? – Mangofett

+0

Ziemlich viel. Wir könnten alle - zumindest in der Theorie - unser Bestes geben, um den gesamten Weg zurück zu NCSA Mosaic elegant zu degradieren. Aber es gibt einen realen Ausstiegspunkt, wenn die Browsernutzung wirklich sehr niedrig ist. – Rounin

+1

Es gibt auch einen Punkt, an dem Leute, die diese Browser verwenden, größere Probleme haben, dass die Opazität nicht direkt auf Ihrer Website funktioniert. IE8 erhält nicht einmal Sicherheitsupdates von Microsoft. – Quentin

1

< ----------------------------- UPDATE --------------- ------------------>

Ich habe alle Selektoren gefunden! Hier sind sie für jeden, der sie benutzen:

.style.opacity 
.style.MsFilter 
.style.filter.alpha 
.style.MozOpacity 
.style.KhtmlOpacity 

Hinweis: Wenn Sie die „MsFilter“ Eigenschaft verwenden, stellen Sie sicher, dass die zusätzlichen Satz von Anführungszeichen mit einem Schrägstrich abzubrechen:

.style.MsFilter = "\"progid:DXImageTransform.Microsoft.Alpha(opacity=1)\""; 

Vielen Dank an alle für deine Hilfe/Eingabe!

Verwandte Themen