2016-05-28 6 views
0

Mein Ziel ist es, die content: '\e826'; von einer Symbolklasse in einen anderen Selektor zu importieren, falls sich die Inhaltseigenschaft in der Zukunft ändert.In LESS, ist es möglich, den Inhalt eines Selektors in einen anderen zu importieren?

.icon-hi:before {content: '\e826';} 

.panel { 
    background: white; 
    .panel-title { 
     &:before { 
      @include .icon-hi; 
      text-align: center; 
      width: 20px; 
      height: 20px; 
     } 
    } 
} 

Natürlich @import nicht dafür arbeiten, aber gibt es einen anderen Weg?

Antwort

1

Zum Zweck einen Wert an einem Ort zu definieren, sollten Sie Variablen verwenden:

@icon-hi: '\e826'; 

.icon-hi:before {content: @icon-hi;} 

.panel { 
    background: white; 
    .panel-title { 
     &:before { 
      content: @icon-hi; 
      text-align: center; 
      width: 20px; 
      height: 20px; 
     } 
    } 
} 

Sie können tatsächlich ‚importieren einen Wähler in einer anderen‘. Das ist im Grunde was Mixins tun. Dies sind die ersten beiden Funktionen in der wenigen Dokumentation - http://lesscss.org/features/

Eine dritte Möglichkeit besteht darin, die erweitern Funktion nutzen zu können: http://lesscss.org/features/#extend-feature

+0

Danke Ali, obwohl das würde die Aktualisierung meiner Icon-Klassen schwieriger machen. Momentan bündle ich Icons in Fontello und lege alle aktualisierten '.icon-' Klassen ab. Ich hoffe, ich könnte auf den Klasseninhalt verweisen. Sieht so aus, als ob es ohne vars nicht möglich wäre. – BrandonReid

+1

Ich aktualisierte meine Antwort mit einigen weiteren Optionen. Sie sollten sowohl Mixins betrachten als auch erweitern. Sie könnten versuchen, etwas wie '.panel-title: extend (.icon-hi all)' –

+0

Die beste Option ist, wenn die Bibliothek, die Sie verwenden, eine weniger Quelle hat, können Sie die Quelle mit Ihren eigenen und verwenden Sie ihre Variablen direkt und kompilieren sie alle zusammen –

1

Sie können, ist hier das Beispiel:

.icon-hi{ 
    &:before{ 
    content: '\e826'; 
    } 
} 

.panel { 
    background: white; 
    .panel-title { 
    .icon-hi; 
      &:before { 
       text-align: center; 
       width: 20px; 
       height: 20px; 
      } 
     } 
    } 

Sie haben zu definieren. icon-hi-Klasse und definieren Sie vorher mit Verschachtelung, damit der Preprocessor wissen kann, was zu holen ist.