2012-09-27 11 views
7

Powiedzmy, że mam styl zdefiniowany przy użyciu Minus:Ponowne użycie MNIEJ style zagnieżdżone

ul.unstyled, 
ol.unstyled { 
    margin-left: 0; 
    list-style: none; 
} 

Później chcę ponownie użyć klasy unstyled:

.my-list { 
    .unstyled; 
} 

To nie działa jednak nie mogę rozgryźć magii, aby to zadziałało. jakieś pomysły?

Odpowiedz

5

Nie można ponownie użyć dowolnych definicji klas, tylko miksy (zaczynając od kropki). W takim przypadku musisz go powielić.

+2

Czy to oznacza, że ​​LESS tworzy mieszankę bez parametrów, kiedy zdefiniujesz '.myClass'? –

+0

Dobre pytanie. Myślę, że tak, ponieważ według dokumentacji mixiny są po prostu klasami: "Mixiny pozwalają na osadzenie wszystkich właściwości klasy w innej klasie, po prostu wpisując nazwę klasy jako jedną z jej właściwości, tak jak zmienne, ale dla całych klas ". –

3

Spróbuj tego:

.unstyled { 
    margin-left: 0; 
    list-style: none; 
} 

.my-list { 
    .unstyled; 
} 

Nie będzie w stanie zagnieździć .unstyled jeśli jest zdefiniowana jako ul.unstled i ol.unstyled.

+0

Że nie działa dla mnie, ponieważ nie posiadam oryginalnej definicji ... innymi słowy klasa "unstyled" jest zdefiniowana w 'Bootstrap.less' i chciałbym uniknąć zmiany zależności. Zamiast tego chcę wiedzieć, jak ponownie użyć stylu zagnieżdżonego. –

+0

Ah. Jeśli nie chcesz/nie możesz przesłonić tych stylów, nie jestem pewien, czy będziesz mógł użyć go ponownie tak, jak chcesz. LESS nie pozwala określić '' ul.unstyled'' lub podobnego jako klasy zagnieżdżonej. Zawsze możesz stworzyć mixin, ale to będzie duplikowanie kodu. –

1

Ponieważ nie można ponownie wykorzystać .unstyled kiedy jest zagnieżdżony styl i pewnie nie chcesz edytować kod źródłowy Bootstrap, sugeruję po prostu przypisać zarówno classnames do swojej listy:

<ul class="unstyled my-list" />