2016-10-10 3 views
-1

Ich erstelle eine Anwendung, die die Formatierung jeder Webseite bearbeitet. Ich versuche, die Hintergrundfarbe aller untergeordneten divs eines ausgewählten div zu ändern, aber mein aktueller Code lässt Bilder innerhalb der divs verschwinden.Ändern Hintergrundfarbe für alle untergeordneten Elemente ohne Bilder zu verbergen

Ich habe versucht mit: not(), um die Formatierung nicht auf Bilder anwenden, aber es hat nichts geändert. Gibt es eine Möglichkeit, die Hintergrundfarbe nicht auf Bilder anzuwenden oder Bilder nicht auszublenden?

+0

Willkommen bei Stack-Überlauf! Fragen, die Code-Hilfe benötigen, müssen den kürzesten Code enthalten, der notwendig ist, um ihn ** in der Frage selbst zu reproduzieren ** vorzugsweise in einem [** Stack Snippet **] (https://blog.stackoverflow.com/2014/09/introducing-runnable -javascript-css-und-html-code-snippets /). Siehe [** So erstellen Sie ein minimales, vollständiges und überprüfbares Beispiel **] (http://stackoverflow.com/help/mcve) –

+4

Ich kann dieses Problem nicht reproduzieren: http://jsbin.com/yodiga/ edit? html, css, output –

+0

Vereinbar mit @FabianSchultz https://jsfiddle.net/4b4Lam1o/ – DaniP

Antwort

0

ich denke, Ihre img s sind nicht children aber sie sind grandchildren von Ihrem .blah Div. deshalb funktioniert dein Code nicht. und so die Eltern des img (.child in meinem Fall) bekommt den Hintergrund und so ein Hintergrund erscheint unter dem Bild, obwohl das Bild nicht bekommt die background-color Stil

Sie könnte so etwas wie diese versuchen (nicht wissen, Ihre HTML-Struktur oder wie komplex es ist)

div *:not(.child) { background-color: #fffdd0 !important;} 
 
.parent > .child *:not(img){ background-color: red !important;}
<div class="parent"> 
 
<p>Child Text</p> 
 
<h1>Child Heading</h1> 
 
    <div class="child"> 
 
     <img src="http://placehold.it/350x150"> 
 
     <p>grandChild Text</p> 
 
    </div> 
 
</div>

+1

gut ja. wie ich es erklärt habe. Obwohl der 'img' nicht den 'background-color'-Stil erhält, ist es der Elternteil, der ein Kind des' div' ist und die Hintergrundfarbe erhält. deshalb erscheint eine Hintergrundfarbe unter dem Bild. –

+1

wie ich die Frage verstehe. er sagt, dass sein aktueller Code die Bilder verschwinden ließ DANN versuchte er, '' nicht (img) 'Selektor zu verwenden, aber immer noch wird der Hintergrund auf das img angewendet (was nicht ist, wird auf das Elternteil des Bildes angewendet, das ein a ist Kind des div) '. Gibt es eine Möglichkeit, die Hintergrundfarbe nicht auf Bilder anzuwenden? Ich habe seine Frage beantwortet. Das Problem ist, dass der IMG kein DIREKT Kind des 'div.blah' ist, sondern ein' .grandchild' –

+0

Gut sehen von diesem Gesichtspunkt ... das Raten ist eine gute Antwort, da die Frage selbst an Information fehlt ... lösche meine Kommentare und entferne den Downvote, um den Spam deiner Antwort zu vermeiden. gut gemacht, Kumpel – DaniP

Verwandte Themen