簡單介紹CSS中的URL工具

有許多原因使得你需要在CSS代碼中系統(tǒng)性的替代URL:將其轉(zhuǎn)換為數(shù)據(jù)URI、將其指向一個(gè)CDN、將其文件名替換為自動(dòng)生成的文件名,等等。這個(gè)工具能夠幫你從給定的CSS代碼中將URL解析出來,并允許你將其替換為你選擇的任意值。替換后的CSS代碼與源代碼完全相同,除了URL已經(jīng)根據(jù)你的選擇進(jìn)行了替換。
這個(gè)庫包含諸多工具,能夠幫助你操作和更改CSS URL。
CSS URL重寫器(Rewriter)
CSS URL重寫器使用一個(gè)CSS分詞器來安全的找到所有的CSS URL,這使得所有的改動(dòng)都是完全安全的,因?yàn)樗灰蕾囉谡齽t表達(dá)式從CSS中提取URL。
使用方法
- var URLRewriter = require("cssurl").URLRewriter;
- var rewriter = new URLRewriter(function(url) {
- // automatically append a query string with a unique value to bust caches
- return url + "?v=" + Date.now();
- });
- var result = rewriter.rewrite(cssCode);
當(dāng)CSS URL重寫器遍歷CSS代碼時(shí),它會(huì)調(diào)用傳入CSSURLRewriter構(gòu)造器的函數(shù),并傳給它找到的每個(gè)URL。url變量是指CSS代碼中找到的除去了任何引號(hào)和前后空格的URL(不包含url())。之后,你可以檢查URL,隨心所欲地修改它,以及在你需要使用的地方返回它的值。
限制
CSS URL重寫器只會(huì)替換被表示為URL標(biāo)記的URL,也就是說,它必須是以u(píng)rl(foo.css)的形式而非”foo.css”的形式存在,盡管后者在部分CSS里是允許的。
CSS URL重寫流(Rewrite Stream)
CSS URL重寫流使用流內(nèi)部的URL重寫器,因此你可以很容易將代碼取出或置入。
使用方法
- var URLRewriteStream = require("cssurl").URLRewriteStream;
- fs.createReadStream("my.css").pipe(new URLRewriteStream(function(url) {
- // automatically append a query string with a unique value to bust caches
- return url + "?v=" + Date.now();
- })).pipe(fs.createWriteStream("my-new.css"));
CSS URL翻譯器(Translator)
CSS URL翻譯器是一個(gè)工具,能夠?qū)Σ煌珻SS文件中的相關(guān)CSS URL進(jìn)行翻譯。有時(shí)候你可能要移動(dòng)一個(gè)CSS文件,比如說從css/sprites/foo.css到css/sprites.css,當(dāng)你做這件事時(shí),CSS文件中任何相關(guān)的URL都不再準(zhǔn)確了。CSS URL翻譯器,與CSS URL重寫器結(jié)合使用,通過自動(dòng)計(jì)算出新的路徑使得我們可以輕松地進(jìn)行修改。翻譯器也足夠聰明,不會(huì)翻譯任何不相關(guān)的URL。
使用方法
- var URLTranslator = require("cssurl").URLTranslator;
- var translator = new URLTranslator();
- var result = translator.translate("../../img/foo.png", "css/sprites/foo.css", "css/sprites.css");
- console.log(result); // "../img/foo.png"
開發(fā)
要運(yùn)行測(cè)試,請(qǐng)克隆以下倉庫,然后執(zhí)行:
$ npm test
版權(quán)和許可證為BSD3
相關(guān)文章
- 這篇文章主要為大家介紹了CSS實(shí)現(xiàn)連續(xù)字符換行的方法,設(shè)計(jì)CSS的word-break屬性使用方法,需要的朋友可以參考下2015-05-12
純CSS實(shí)現(xiàn)美觀大方的網(wǎng)頁柱狀圖效果
這篇文章主要為大家介紹了純CSS實(shí)現(xiàn)美觀大方的網(wǎng)頁柱狀圖效果的方法,可以直觀鮮明的顯示數(shù)據(jù)統(tǒng)計(jì)的效果,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-12純CSS實(shí)現(xiàn)鼠標(biāo)懸停提示的方法
這篇文章主要為大家介紹了純CSS實(shí)現(xiàn)鼠標(biāo)懸停提示的方法,可實(shí)現(xiàn)鼠標(biāo)懸停彈出提示層的效果,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-11