2017-11-03 3 views
1

Wie kann ich das mit SASS/SCSS tun?SASS oder SCSS Verwendung von kaufmännisches Und

sass:

.orange 
    color: $orange 
    button& 
    background: $orange 
    color: black 

Es sollte die folgende CSS produzieren:

.orange { 
    color: #ffa500; 
} 

button.orange { 
    background: $orange; 
    color: black; 
} 

Ich kann es tun, indem & als Variable verwenden, aber es erfordert @at-root und es ist nicht wirklich lesbar/schön:

.orange: 
    @at root 
    button#{&} 
     color: white 

Bei alleiniger Verwendung & Selektor funktioniert gut, aber scheint aber die Sprache nicht erlaubt es so zu verwenden, wie ich will. Irgendeine Idee?

Antwort

0

"&" may only be used at the beginning of a compound selector.

DOCS

Aber Sie können Ihre Schaltfläche, um eine Klasse geben und sie nach den DEMO

$orange: orange 

.orange 
    color: $orange 
    &.button 
    background: $orange 
    color: black 
+0

Dank &

setzen, aber es fügt eine Klasse, und ich möchte Vermeiden Sie das Hinzufügen von Klassen, um meinen HTML-Code lesbar zu halten, insbesondere wenn die Klassen zur Problemumgehung dienen Sprachfehler: - /. '

+0

Es gibt Namenskonventionen, die mit Ihnen nicht übereinstimmen würden, [BEM] (https://css-tricks.com/bem-101/) ist ein Beispiel, aber Sie können Code schreiben, wie Sie es für richtig halten. Egal, ich verbrachte die Zeit, um Ihre Frage zu beantworten; "Das kannst du nicht tun". Es wäre cool, wenn du die Antwort akzeptierst. – Ari

+0

Die BEM-Philosophie fügt tatsächlich Klassen hinzu, um einen semantischen Wert bereitzustellen. 'button.button', um die Sprachmängel zu hacken, fällt nicht in diese Kategorie. Bisher bevorzuge ich die von mir vorgeschlagene Lösung, danke für deine Zeit. – Eric