2012-09-27 77 views
2

我在項目中首次使用adapt.js。我有一個範圍0到720,我想加載一個mobile.css文件以及第二個CSS文件,我們將其稱爲style.css。這可能嗎?有沒有解決辦法?我試過這個,但沒有按預期工作。有沒有可能爲adapt.js加載一個範圍的多個樣式表?

var ADAPT_CONFIG = { 
    path: 'css/', 

    dynamic: true, 

    range: [ 
     '0px to 720px = style.css', 
     '0px to 720px = mobile.css', 
     '720px   = 720.css' 
    ] 
}; 

回答

0

恐怕,這是不可能的,但如果你覺得大膽你也許可以修改adapt.js做到這一點的來源。下面是adapt.js關鍵部分:

// If it's a range, split left/right sides of "to", 
// and then convert each one into numerical values. 
// If it's not a range, turn maximum into a number. 
val_1 = is_range ? parseInt(arr_0.split('to')[0], 10) : parseInt(arr_0, 10); 
val_2 = is_range ? parseInt(arr_0.split('to')[1], 10) : undefined; 

// Check for maxiumum or range. 
if ((!val_2 && i === last && width > val_1) || (width > val_1 && width <= val_2)) { 
    // Build full URL to CSS file. 
    file && (url = path + file); 

    // Exit the while loop. No need to continue 
    // if we've already found a matching range. 
    break; 
} 

這是一個while循環,檢查你在ADAPT_CONFIG指定範圍內的條件。正如你所看到的,一旦找到一條路徑,「範圍」就不再被檢查用於任何附加匹配。你或許可以改變代碼來允許它 - 你可能必須將while循環後面的代碼移動到上面的if語句中,並刪除中斷(這是一個受過教育的猜測,我沒有嘗試過)。然而,根據你如何提供文件,我會強烈考慮尋找一個資產管理器來將「style.css」和「mobile.css」結合成一個文件 - 預編譯資產允許其他一些其他文件有趣的技巧,如自動使css文件儘可能小。

編輯 - 如果你對資產管理者感興趣,真的沒有辦法做到這一點;它將嚴重依賴您在工作中使用的環境。對於像Rails這樣的東西來說,這是非常容易的,因爲合併文件已經相當熟練了,並且鏈接gem有很多其他功能來管理資產(組合文件非常快)。如果我是你,儘管我可能只是按照「合併css文件」的方式做一些簡單的搜索,但會有很多選項。如果你沒有一個漂亮的框架(here's是一個很好的例子),那麼PHP腳本就可以滿足你的需求,而谷歌爲這種炒鍋製作Apache mod

如果你確實走這條路線,我會鼓勵你在基本工作後玩一下 - 你可以做一些很好的事情,比如在ADAPT_CONFIG中生成範圍的值,文件,從你可以管理樣式文件的地方給你一個很好的乾淨的單點。

+0

謝謝您的回答,遺憾的是我工作的地方,他們不喜歡我們修改任何庫/框架/插件/等等......資產管理者聽起來像是一個很有前途的選擇。從來沒有必須使用之前,任何你推薦?再次感謝。 – uhhitsjames

+0

這可能是公司的不錯選擇;最好修改庫是多餘的工作。我在原始答案中添加了一些信息,希望你能找到適合你的東西。 – Bubbles

1

您可以在的style.css的開始使用

@import url('/css/mobile.css'); 

然後,您可以配置(通過ADAPT_CONFIG)adapt.js以僅使用style.css該範圍。

反之亦然,你可以在mobile.css年底導入的style.css,並且只使用mobile.css

相關問題