W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Stylus支持字面@import CSS, 也支持其他Stylus樣式的動態(tài)導入。
任何.css擴展的文件名將作為字面量。例如:
@import "reset.css"
渲染如下:
@import "reset.css"
當使用@import沒有.css擴展,會被認為是Stylus片段(如:@import "mixins/border-radius")。
@import工作原理為:遍歷目錄隊列,并檢查任意目錄中是否有該文件(類似node的require.paths)。該隊列默認為單一路徑,從filename選項的dirname衍生而來。 因此,如果你的文件名是/tmp/testing/stylus/main.styl,導入將顯現(xiàn)為/tmp/testing/stylus/。
@import也支持索引形式。這意味著當你@import blueprint, 則會理解成blueprint.styl或blueprint/index.styl. 對于庫而言,這很有用,既可以展示所有特征與功能,同時又能導入特征子集。
如下很常見的庫結(jié)構(gòu):
./tablet
|-- index.styl
|-- vendor.styl
|-- buttons.styl
|-- images.styl
下面這個例子中,我們設(shè)置paths選項用來為Stylus提供額外路徑。在./test.styl中,我們可以@import "mixins/border-radius"或@import "border-radius"(因為./mixins 暴露給了Stylus)。
/**
* 依賴模塊
*/
var stylus = require('../')
, str = require('fs').readFileSync(__dirname + '/test.styl', 'utf8');
var paths = [
__dirname
, __dirname + '/mixins'
];
stylus(str)
.set('filename', __dirname + '/test.styl')
.set('paths', paths)
.render(function(err, css){
if (err) throw err;
console.log(css);
});
當使用.import(path)方法,這些導入是被推遲的,直到賦值。
var stylus = require('../')
, str = require('fs').readFileSync(__dirname + '/test.styl', 'utf8');
stylus(str)
.set('filename', __dirname + '/test.styl')
.import('mixins/vendor')
.render(function(err, css){
if (err) throw err;
console.log(css);
});
下面語句:
@import 'mixins/vendor'
等同于:
.import('mixins/vendor')
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: