DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 簡單介紹CSS中的URL工具
簡單介紹CSS中的URL工具
編輯:CSS詳解     
這篇文章主要介紹了簡單介紹CSS中的URL工具,包括URL重寫器和URL翻譯器等,需要的朋友可以參考下

有許多原因使得你需要在CSS代碼中系統性的替代URL:將其轉換為數據URI、將其指向一個CDN、將其文件名替換為自動生成的文件名,等等。這個工具能夠幫你從給定的CSS代碼中將URL解析出來,並允許你將其替換為你選擇的任意值。替換後的CSS代碼與源代碼完全相同,除了URL已經根據你的選擇進行了替換。

這個庫包含諸多工具,能夠幫助你操作和更改CSS URL。

CSS URL重寫器(Rewriter)

CSS URL重寫器使用一個CSS分詞器來安全的找到所有的CSS URL,這使得所有的改動都是完全安全的,因為它不依賴於正則表達式從CSS中提取URL。

使用方法

CSS Code復制內容到剪貼板
  1. var URLRewriter = require("CSSurl").URLRewriter;
  2. var rewriter = new URLRewriter(function(url) {
  3. // automatically append a query string with a unique value to bust caches
  4. return url + "?v=" + Date.now();
  5. });
  6. var result = rewriter.rewrite(CSSCode);

當CSS URL重寫器遍歷CSS代碼時,它會調用傳入CSSURLRewriter構造器的函數,並傳給它找到的每個URL。url變量是指CSS代碼中找到的除去了任何引號和前後空格的URL(不包含url())。之後,你可以檢查URL,隨心所欲地修改它,以及在你需要使用的地方返回它的值。

限制

CSS URL重寫器只會替換被表示為URL標記的URL,也就是說,它必須是以url(foo.css)的形式而非”foo.css”的形式存在,盡管後者在部分CSS裡是允許的。

CSS URL重寫流(Rewrite Stream)

CSS URL重寫流使用流內部的URL重寫器,因此你可以很容易將代碼取出或置入。

使用方法

CSS Code復制內容到剪貼板
  1. var URLRewriteStream = require("CSSurl").URLRewriteStream;
  2. fs.createReadStream("my.CSS").pipe(new URLRewriteStream(function(url) {
  3. // automatically append a query string with a unique value to bust caches
  4. return url + "?v=" + Date.now();
  5. })).pipe(fs.createWriteStream("my-new.CSS"));

CSS URL翻譯器(Translator)

CSS URL翻譯器是一個工具,能夠對不同CSS文件中的相關CSS URL進行翻譯。有時候你可能要移動一個CSS文件,比如說從css/sprites/foo.css到css/sprites.css,當你做這件事時,CSS文件中任何相關的URL都不再准確了。CSS URL翻譯器,與CSS URL重寫器結合使用,通過自動計算出新的路徑使得我們可以輕松地進行修改。翻譯器也足夠聰明,不會翻譯任何不相關的URL。

使用方法

CSS Code復制內容到剪貼板
  1. var URLTranslator = require("CSSurl").URLTranslator;
  2. var translator = new URLTranslator();
  3. var result = translator.translate("../../img/foo.png", "css/sprites/foo.CSS", "css/sprites.CSS");
  4. console.log(result); // "../img/foo.png"

開發

要運行測試,請克隆以下倉庫,然後執行:


復制代碼代碼如下: $ npm i
$ npm test

版權和許可證為BSD3

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved