我試圖用多個使用Bootstrap CSS的配色方案創建CSS主題。每種顏色方案均構建爲boostrap.less
文件的修改版本:bootstrap-red.less
,bootstrap-green.less
,依此類推。在Less CSS中定義跨文件的變量
每個Bootstrap版本所做的是導入所有默認的Bootstrap文件,然後導入適當的調色板,然後導入主題的核心結構。例如,bootstrap-red.less
:
@import "reset.less";
@import "variables.less";
@import "mixins.less";
/* and so on... until */
// Custom code
@import "elements.less";
@import "_mytheme-color-scheme-red.less";
@import "_mytheme-core.less";
在_mytheme-color-scheme-red.less
,我定義的變量,如:
@bannerBackground: #59a449;
然而,編譯bootstrap-red.less
當我得到:
NameError: variable @bannerBackground is undefined in /.../css/less/_mytheme-core.less
爲什麼會出現這種情況?我原以爲它會起作用,因爲variables.less
文件中的變量以相同的方式定義,並且可以在後續文件中使用它們。
我看過類似的問題,並嘗試不同的東西,但無濟於事:
@import
文件_mytheme-core.less
在荷蘭國際集團"_mytheme-color-scheme-red.less"
- 不可行的;另外,Bootstrap不會這樣做,但它仍然有效。- 對沒有BOM的UTF-8文件進行編碼 - 沒有工作,結果相同。
在我看來,文件_mytheme-color-scheme-red.less
根本沒有被處理。這就好像Less編譯器只是跳過它並直接去找_mytheme-core.less
我該如何解決這個問題?
這聽起來像我的LESS經驗,至少在使用SimpLESS進行編譯時是如此。我切換預處理器的原因之一。通過mixin傳遞變量不是一個選項嗎? – cimmanon
你正在使用哪種編譯方法?你有沒有嘗試在'variables.less'後面導入你的變量? – Sherbrow
@Sherbrow我現在試過了,結果是一樣的。我真的不明白它,它總是*跳過我的變量文件,無論如何。 – jSepia