Diese Methode ermöglicht es Ihnen, ein Bild im Hintergrund zu haben und nicht nur eine Volltonfarbe, und kann verwendet werden, um Transparenz auf andere Attribute wie Grenzen zu haben. Es sind keine transparenten PNG-Bilder erforderlich.
使用方法 :before
(o :after
) in CSS und geben Sie ihnen den Opazitätswert, damit das Element seine ursprüngliche Opazität beibehält. So können Sie :before verwenden, um ein Fake-Element zu erstellen, ihm den gewünschten transparenten Hintergrund (oder Rahmen) zu geben und es hinter den Inhalt zu schieben, den Sie mit :before opak halten wollen. z-index
.
Ein Beispiel ( fiddle ) (beachten Sie, dass die DIV
mit Klasse dad
dient nur dazu, einen Kontext und einen Kontrast zu den Farben zu schaffen. Dieses zusätzliche Element wird eigentlich nicht benötigt, und das rote Rechteck wird ein wenig nach unten und nach rechts verschoben, damit der Hintergrund hinter dem fancyBg
Element):
<div class="dad">
<div class="fancyBg">
Test text that should have solid text color lets see if we can manage it without extra elements
</div>
</div>
mit diesem CSS:
.dad {
background: lime; border: 1px double black; margin: 1ex 2ex;
padding: 0.5ex; position: relative; -k-z-index: 5;
}
.fancyBg {
border: 1px dashed black; position: relative; color: white; font-weight: bold;
z-index: 0; /*background: black;*/
}
.fancyBg:before {content:'-'; display: block;
position: absolute; background: red; opacity: .5;
top: 2ex; right: -2ex; bottom: -2ex; left: 2ex;
/*top: 0; right: 0; bottom: 0; left: 0;*/
z-index: -1;
}
In diesem Fall .fancyBg:before
hat die CSS-Eigenschaften, die Sie mit Transparenz haben möchten (roter Hintergrund in diesem Beispiel, aber es kann ein Bild oder ein Rahmen sein). Es ist als absolut positioniert, um es hinter .fancyBg
(verwenden Sie Werte von Null oder was auch immer für Ihre Bedürfnisse besser geeignet ist).
21 Stimmen
Leider nicht, CSS3 zielt darauf ab, dies mit dem neuen Farbmodul zu beheben, es würde Ihnen erlauben, einen Alpha-Wert anzugeben, wenn Sie eine Farbe angeben. w3.org/TR/css3-color
77 Stimmen
Eigentlich ist die Deckkraft der untergeordneten Elemente multipliziert durch die Deckkraft des übergeordneten Elements, nicht außer Kraft gesetzt. Wenn also zum Beispiel das
p
Die Opazität von.6
und diespan
Die Opazität von.5
dann wäre die tatsächliche Deckkraft des Textes im Bereich0.3
.0 Stimmen
Ist dieses Live-Beispiel das, was wir mit dieser Antwort erreicht haben? codepen.io/pablofiumara/pen/EIFaH
3 Stimmen
Vermutlich ja, aber da der Hintergrund durchscheinend ist, brauchen Sie den Filter/die Deckkraft nicht: codepen.io/anon/pen/ksJug
7 Stimmen
@chharvey was soll passieren, wenn ich definiere
opacity:.5
für die Eltern undopacity:2
für das untergeordnete Element?15 Stimmen
@Alexander, ich bin froh, dass Sie diese Frage gestellt haben. Mathematisch gesehen würde man vermuten, dass das Kind wieder zu einer Deckkraft von 1 zurückkehren würde,
opacity:2;
es ungültiges CSS . Der Wert deropacity
Eigenschaft muss innerhalb des umfassenden Bereichs [0,1] liegen.0 Stimmen
Können Sie
background: rgb(#, #, #,
*Gleitpunkt Zahl von 0 bis 1*);
Dadurch wird der Hintergrund undurchsichtig, wenn Sie nur eine Farbe verwenden möchten.