2012-06-04 8 views
55

Hey ich in google bin auf der Suche, aber ichWie setze ich die Deckkraft im Eltern-Div und nicht im Child-Div?

jede perfekte Antwort nicht fein kann

ich in Mutter DIV Undurchsichtigkeit wollen aber nicht Child DIV

Beispiel

HTML

<div class="parent"> 
<div class="child"> 
Hello I am child 
</div> 
</div> 

Css

.parent{ 
background:url('../images/madu.jpg') no-repeat 0 0; 
} 
.child{ 
Color:black; 
} 

Hinweis: - Ich möchte background-image in Parent Div nicht

+0

hey @DavidThomas Wie kann man sagen, dass diese Frage Duplikate ist, wenn Sie eine Antwort in dieser Frage haben wiout verwendet Position und verwendet, um Hintergrundbilder in Elternteil div in reinem css ............ –

+0

Pre-Edit schien es zu sein; Ich habe die Frage in Mobile gelesen und dann, um Duplikate zu finden, bin ich zum Desktop gewechselt. Ich habe deine Frage zwischenzeitlich nicht neu gelesen. Meine enge Stimme wird jedoch verschwinden, also mach dir keine Sorgen. –

Antwort

37

Vielleicht ist es gut, wenn Sie Ihr Hintergrundbild in der :after Pseudoklasse definieren.Schreiben wie folgt aus:

.parent{ 
    width:300px; 
    height:300px; 
    position:relative; 
    border:1px solid red; 
} 
.parent:after{ 
    content:''; 
    background:url('http://www.dummyimage.com/300x300/000/fff&text=parent+image'); 
    width:300px; 
    height:300px; 
    position:absolute; 
    top:0; 
    left:0; 
    opacity:0.5; 
} 
.child{ 
    background:yellow; 
    position:relative; 
    z-index:1; 
} 

prüfen diese fiddle

+1

meine antwort ist ganz ähnlich wie deine, aber ich kann nicht zeigen, was mit mir falsch ist –

+0

@sandeep danke für die genaue antwort wir waren völlig verwirrt in diesem fehler ...... danke kumpel. ..... –

+0

@VladimirStarkov Wenn ich meine Antwort gebe, habe ich deine Antwort nicht gesehen :) – sandeep

4

Sie nicht können Farbe. Das erlaubt Css heute einfach nicht.

die logische Rendering-Modell ist diese:

Wenn das Objekt ein Behälterelement ist, dann ist die Wirkung, als ob der Inhalt des Behälterelements gegen den Strom Hintergrund gemischt wurden unter Verwendung einer Maske in dem der Wert von jedem Pixel der Maske ist.

Referenz: css transparency

Die Lösung ist eine andere Elementzusammensetzung zu verwenden, in der Regel feste oder berechnete Positionen für die Verwendung, was heute als Kind definiert: es als Kind logisch und visualy für den Benutzer angezeigt aber das Element muss nicht wirklich ein Kind in Ihrem Code sein.

Eine Lösung mit CSS: fiddle

.parent { 
    width:500px; 
    height:200px;  
    background-image:url('http://canop.org/blog/wp-content/uploads/2011/11/cropped-bandeau-cr%C3%AAte-011.jpg'); 
    opacity: 0.2; 
} 
.child { 
    position: fixed; 
    top:0; 
} 

Eine andere Lösung mit javascript: fiddle

+0

Danke, aber das ist nur Hintergrundfarbe verwandt nicht Hintergrundbilder ............. –

+0

Es ist das gleiche für Bilder. –

+0

können Sie mir ein Beispiel auf jsfiddle.net geben –

0

Sie können nicht tun, es sei denn, Sie nehmen das Kind aus dem Mutter und legen Sie es über Positionierung.

Die einzige Möglichkeit, die ich weiß und es funktioniert, ist verwenden Sie eine translucid Bild (. Png mit Transparenz) für den Hintergrund der Eltern. Der einzige Nachteil ist, dass Sie die Deckkraft nicht über CSS kontrollieren können, außer dass es funktioniert!

+0

warum das Negative? – jackJoe

14

Sie kann es tun mit Pseudo-Elemente: (demo on dabblet.com) enter image description here

Markup:

<div class="parent"> 
    <div class="child"> Hello I am child </div> 
</div> 

css:

.parent{ 
    position: relative; 
} 

.parent:before { 
    z-index: -1; 
    content: ''; 
    position: absolute; 

    opacity: 0.2; 
    width: 400px; 
    height: 200px; 
    background: url('http://img42.imageshack.us/img42/1893/96c75664f7e94f9198ad113.png') no-repeat 0 0; 
} 

.child{ 
    Color:black; 
} 
+0

hey @Vladimir starkov ich habe keine Position verwendet ............... –

+0

@RohitAzad warum ist es so groß? –

+0

+1 für Ihre Antwort Sie waren auch in der Nähe von meiner Anforderung tatsächlich haben Sie nicht definiert die Breite Höhe in Ihrem Elternteil, deshalb war ich etwas verwirrt in Ihrer Antwort byw danke ....... –

65

Ich weiß, das ist alt, aber nur für den Fall wird es jemand anderes helfen.

<div style="background-color: rgba(255, 0, 0, 0.5)">child</div> 

Wo rgba ist: rot, grün, blau und a ist für Transparenz.

+0

... aaund es hat keinen Einfluss auf andere Hintergrundfarben innerhalb der Child div's (nur eine kurze Notiz) – CularBytes

+0

Das Hinzufügen eines hartcodierten Inline-Stils ist falsch, bitte teilen Sie dies nicht. – Ofear

6

Wie von Tom erwähnt, kann background-color: rgba(229,229,229, 0.85) den Trick tun. Platzieren Sie das auf dem Stil des übergeordneten Elements und Kind wird nicht betroffen sein.