Ich möchte die Deckkraft des Hintergrunds von div einstellen, ohne das in IE 8 enthaltene Element zu beeinflussen. Ich habe eine Lösung und antworte nicht, um 1 x 1 .png-Bild und Deckkraft dieses Bildes festzulegen, da ich dynamische Deckkraft verwende und der Farbadministrator sich ändern kann Das
Ich habe das benutzt, aber nicht in IE 8 gearbeitet
#alpha {
filter: alpha(opacity=30);
-moz-opacity: 0.3;
-khtml-opacity: 0.3;
opacity: 0.3;
}
und
rgba(0,0,0,0.3)
ebenfalls.
css
internet-explorer-8
opacity
Govind Malviya
quelle
quelle
Antworten:
Der
opacity
Stil wirkt sich auf das gesamte Element und alles darin aus. Die richtige Antwort darauf ist, stattdessen eine RGBA-Hintergrundfarbe zu verwenden.Das CSS ist ziemlich einfach:
... wobei die ersten drei Zahlen die roten, grünen und blauen Werte für Ihre Hintergrundfarbe sind und die vierte der Alpha-Kanalwert, der genauso funktioniert wie der
opacity
Wert.Weitere Informationen finden Sie auf dieser Seite: http://css-tricks.com/rgba-browser-support/
Der Nachteil ist, dass dies in IE8 oder niedriger nicht funktioniert. Die Seite, die ich oben verlinkt habe, listet auch einige andere Browser auf, in denen es nicht funktioniert, aber sie sind mittlerweile alle sehr alt. Alle derzeit verwendeten Browser außer IE6 / 7/8 funktionieren mit RGBA-Farben.
Die gute Nachricht ist, dass Sie den IE auch dazu zwingen können, mit einem Hack namens CSS3Pie zu arbeiten . CSS3Pie erweitert ältere IE-Versionen um eine Reihe moderner CSS3-Funktionen, einschließlich der Hintergrundfarben für RGBA.
Um CSS3Pie für Hintergründe zu verwenden, müssen Sie
-pie-background
Ihrem CSS eine bestimmte Deklaration sowie den PIE-behavior
Stil hinzufügen , damit Ihr Stylesheet folgendermaßen aussieht :Hoffentlich hilft das.
[BEARBEITEN]
Wie bereits erwähnt, können Sie für das, was es wert ist, den IE-
filter
Stil mit demgradient
Schlüsselwort verwenden. Die CSS3Pie-Lösung verwendet tatsächlich dieselbe Technik hinter den Kulissen, macht jedoch das direkte Herumspielen mit den IE-Filtern überflüssig, sodass Ihre Stylesheets viel sauberer sind. (Es fügt auch eine ganze Reihe anderer netter Funktionen hinzu, aber das ist für diese Diskussion nicht relevant.)quelle
Es ist einfach, nur du musst geben
& für IE diesen Filter verwenden
Sie können Ihren RGBA-Filter hier generieren: http://kimili.com/journal/rgba-hsla-css-generator-for-internet-explorer/
quelle
opacity
on parent element legt es für den gesamten Sub-DOM-Baum festSie können die Deckkraft für bestimmte Elemente, die nicht auch für Nachkommen gelten, nicht wirklich festlegen. So ist CSS nicht
opacity
Ich fürchte, so .Was Sie tun können, ist, zwei Geschwisterelemente in einem Container zu haben und die Positionierung transparent zu machen:
dann müssen Sie transparent einstellen,
position: absolute/relative
damit das Inhaltsgeschwister darüber gerendert wird.rgba
kann Hintergrundtransparenz von farbigen Hintergründen tunrgba
Die Farbeinstellung des Elementsbackground-color
funktioniert natürlich, aber Sie können nur Farbe als Hintergrund verwenden. Keine Bilder, fürchte ich. Sie können natürlich auch CSS3-Verläufe verwenden, wenn Sie Verlaufsstoppfarben in angebenrgba
. Das funktioniert auch.Beachten Sie jedoch, dass dies
rgba
möglicherweise nicht von Ihren erforderlichen Browsern unterstützt wird.Alarmfrei modale Dialogfunktionalität
Wenn Sie jedoch die gesamte Seite maskieren möchten, fügen Sie in der Regel eine separate Seite
div
mit folgenden Stilen hinzu:Wenn Sie dann den Inhalt anzeigen, sollte er einen höheren Wert haben
z-index
. Aber diese beiden Elemente sind nicht in Bezug auf Geschwister oder irgendetwas verwandt. Sie werden nur so angezeigt, wie sie sein sollten. Eins über das andere.quelle
Versuchen Sie, den Z-Index für das enthaltene Element höher einzustellen.
quelle
Was ist mit diesem Ansatz:
quelle
Vielleicht gibt es eine einfachere Antwort: Versuchen Sie, dem Code eine beliebige Hintergrundfarbe hinzuzufügen, z. B. Hintergrundfarbe: #fff;
quelle
Dies wirkt sich auf die gesamten untergeordneten Divs aus, wenn Sie die Deckkraftfunktion mit anderen Positionen als absolut verwenden. Ein anderer Weg, um dies zu erreichen, besteht darin, keine Divs ineinander zu setzen und dann die absolute Position für die Divs zu verwenden. Verwenden Sie keine Hintergrundfarbe für das obere Div.
quelle
Verwenden Sie RGBA oder ändern Sie den Hex-Code in rgba. Es ist nicht erforderlich, ein Presodu-Element-CSS auszuführen .
CSS ---------
ODER
quelle