2017-10-02 2 views
0

UPDATE: Es war ein Tippfehler. Ich habe ".ltem" anstatt ".item" geschrieben. Der folgende Code ist korrekt.Auswählen von Element in SCSS durch Verweisen auf mehrere Eltern in derselben Zeile

Unter der Annahme, dass in aus Projekt, das wir nur ein Stylesheet für die beiden Seiten haben unter:

Beispiel einer HTML-Seite:

<div class="container-first"> 
    ... 
    <div class="item"> </div> 
    ... 
</div> 

Beispiel einer anderen HTML-Seite:

<div class="container-second"> 
    ... 
    <div class="item"> </div> 
    ... 
</div> 

Ich weiß, dass man ein Element (.item) in SCSS auswählen kann, indem man einen Eltern-Knoten-Verweis wie folgt verwendet:

.item { 
    .container-first & { 
     background: black 
    } 
    .container-second & { 
     background: black 
    } 
} 

Aber wie können wir mehrere Elternknoten für dasselbe untergeordnete Element in derselben Zeile referenzieren?

Ich tat dies, aber es funktioniert nicht:

.item { 
    .container-first &, .container-second & { 
     background: black 
    } 
} 

Und ich kann nichts erhellend im Internet finden.

Mit anderen Worten, wie kann ich das ".item" -Element durch Verweisen auf mehrere Eltern in der gleichen Zeile innerhalb der geschweiften Klammern ".item" tun?

+1

Können Sie es auf Codepen/JSfiddle/etwas reproduzieren? Ich sehe keinen Grund, warum der Code nicht funktioniert. Sogar versucht es hier: https://codepen.io/helb/pen/PJKXMQ – helb

+0

Ich stimme zu schließen; Die Frage hat wenig Wert, da niemand sie reproduzieren kann, und Sie können anscheinend nicht erklären, was den Kompilierungsfehler verursacht hat. – Blazemonger

+0

Ich habe weiter untersucht und tatsächlich hatte ich einen Tippfehler in einem Klassennamen, der eine falsche Auswahl von ".ltem" anstelle von ".item" verursachte. Das tut mir leid! Wir können es schließen, wenn Sie denken, dass es besser ist. @Blazemonger –

Antwort

1

Es funktioniert.

Die folgende SCSS

.item { 
    .container-first &, .container-second & { 
     background: black 
    } 
} 

kompiliert:

.container-first .item, .container-second .item { 
     background: black; 
} 

es im online sass playground Versuchen.

+0

Es war ein kompilierendes Problem in meinem Projekt, Sie haben Recht. Tut mir leid, dass ich deine Zeit verschwende. Was denkst du soll ich den Thread löschen oder lassen? (Ich denke, dass es für jemand anderen hilfreich sein kann) –

+1

Kein Schaden, es zu verlassen. –

Verwandte Themen