2014-05-18 47 views
0

我正與第一次使用Less和Meteor。一切都非常酷,除非我試圖讓媒體查詢工作。較少/流星媒體查詢作爲變量?

我有一系列的結構類似於媒體查詢的這一個:

/* Desktops and laptops ----------- */ 
@media only screen and (min-width : 1224px) { 
@columns: 12; 
    .full() { 
    width: 100%; 
    } 
    .container(){ 
    .center(12); 
    } 
    .main-col() { 
    .column(9); 
    .push(0); 
    } 
    .side-col(){ 
    .column(3); 
    float:right; 
    } 
    .nested-left-col(){ 
    .nested-left(6) 
    } 
    .nested-right-col(){ 
    .nested-right(3); 
    } 
} 

但是,當CSS編譯,我得到的是這樣的:含有什麼

/* Desktops and laptops ----------- */ 

奇怪的是,媒體查詢但意見編譯按預期:

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) { 
    /* Styles */ 
} 

我敢肯定,這些媒體查詢正在t作爲永遠不會被調用的變量來處理。

我只是做錯了嗎?有沒有什麼明顯的我失蹤了?我一直在尋找一個半小時的答案,但找不到有同樣問題的人。這種表明我錯過了明顯的,但也許我遇到了一些不尋常的事情。

+1

你的代碼只包含[parametric mixins](http://lesscss.org/features/#mixins-parametric-feature),除非被調用,否則什麼也不做。因此預計會產生空的輸出。 –

+0

當我在代碼之外的代碼被調用時,但是當我把它們放進去的時候它們不是? – avaunt

+1

請參見[範圍](http://lesscss.org/features/#features-overview-feature-scope)。每個'@ media'塊都有自己的作用域,因此'@ media'塊中定義的mixins只在該塊中可見。 (也就是說,@ @ media'塊之外的mixin調用不會調用其中定義的mixins)。可能是一個稍微擴展的例子,你想要做什麼會有所幫助。 –

回答

1

明白了。

我原本以不同的方式接近這些mixin,並將使它們成爲參數,所以他們有()。在我改變了我的方法之後,我並沒有去掉(),因爲只要我直接在CSS中調用它們進行佈局測試,就沒有任何值傳遞給它們了。但是當我將它們移動到媒體查詢中時,它們不再被調用,並且我得到了空白輸出。

刪除()s,使它們不再被評估爲參數固定它。

我仍然沒有從@columns變量獲得輸出,但是我想要做的是重新聲明一個全局值。無論如何,我預計這種方式無效,所以我會找到一種不同的方法。

謝謝。非常感激。