2015-03-31 28 views
2

我有一個現有的規則設定這樣的組合選擇,如何使用LESS中現有規則集的聲明?

.class1 + .class2 { /* declaration block */ } 

我想要使用此規則集prop1: value1

特定的聲明在我LESS是否有一種方式來獲得的效果(.class1+.class2).prop1

我不想重複PROP1在新的類,但是從.class1 + .class2

我曾嘗試沒有成功以下使用聲明,

(.class1+.class2).prop1 
.class1+.class2.prop1 

回答

2

我不認爲你可以做到這一點,除了通過該聲明移動到自己的混入,然後參照所述MIXIN兩個.class1 + class2和其他地方要引用此聲明:

.prop1() { 
    prop1: value1; 
} 

.class1 + .class2 { 
    .prop1; 
} 

.class3 { 
    .prop1; 
} 

在一個側面說明:在標準選擇語法中,「複合選擇」專指簡單的選擇序列 - 你有什麼是由兩個化合物的選擇,.class1.class2,由+組合子隔開的一個複雜的選擇。只是一個小小的挑逗,但對於理解將在未來標準中引入的更復雜的選擇器將有很長的路要走。標準CSS或LESS中沒有標記可以讓您引用基於選擇器的樣式聲明,因爲許多規則集可以具有相同的選擇器,並且樣式可以以每個元素爲基礎進行不同級聯。

+0

我注意到一些有趣的事情讓我意識到少只是一個預處理器。 – lalour 2015-04-01 16:05:48

+0

新手在這個網站上!不知道我只有5分鐘才能完成評論!如果一個類是在多個地方定義的(如果導入了不同的.less文件就會發生),然後如果它被用作混音,那麼所有的聲明都會顯示出來,包括使用mixin之後定義的那些聲明。看起來好像它超過1次傳球。我期待看到只有在使用mixin之前定義的那些聲明。而且它只是插入所有的聲明,即如果一個屬性一次又一次被定義,則兩個聲明都以相同的順序輸出。 – lalour 2015-04-01 16:20:19