stylus css 框架使用方法深入解析

Stylus是一款需要編譯的css語言,所以其本身文件不能被html直接調(diào)用,需要要編譯為css文件后再進行日常的加載。
stylus是一款優(yōu)秀的css編譯語言,需要node.js支持,第一步需要安裝node.js
問題:Windows調(diào)試時ctrl+d無效果 ctrl+c退出? 怎樣直接在windows下輸出調(diào)試代碼
備注:# 代表本行是輸入回車運行行
官方網(wǎng)站下載nodejs
1
- tar xvf node-v0.10.28.tar.gz
- # cd node-v0.10.28
- # ./configure
- # make
- # make install
- # cp /usr/local/bin/node /usr/sbin/
2 node - v 查看node版本信息如果有返回信息則安裝成功
3 安裝stylus
# npm install stylus -g注意:必須找-g 同時配置環(huán)境為全局方法
4 調(diào)試Stylus
- # stylus
- border-radius()
- -webkit-border-radius arguments
- -moz-border-radius arguments
- border-radius arguments
- body
- font 12px Helvetica, Arial, sans-serif
- a.button
- border-radius(5px)
輸入Ctrl+D調(diào)試返回結(jié)果
看看是否會返回
- body {
- font: 12px Helvetica, Arial, sans-serif;
- }
- a.button {
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- }
5 styus文件的編譯
創(chuàng)建一個test.styl 的文件,文件內(nèi)容如下:
- border-radius()
- -webkit-border-radius arguments
- -moz-border-radius arguments
- border-radius arguments
- body
- font 12px Helvetica, Arial, sans-serif
- a.button
- border-radius 5px
保存關(guān)閉,在命令行運行如下命令:
# stylus --compress < test.styl > test.css
看看是不是獲得一個test.css的文件,看看內(nèi)容是否如下:
- body{
- font:12px Helvetica,Arial,sans-serif
- }
- a.button{
- -webkit-border-radius:5px;
- -moz-border-radius:5px;
- border-radius:5px
- }
這樣一個stylus的文件就被編譯成了html可以調(diào)用的css文件了。
附錄:
編譯文件范例
stylus亦接受文件和目錄。例如,一個目錄名為css將在同一目錄編譯并輸出.css文件。
$ stylus css下面的將會輸出到./public/stylesheets:
$ stylus css --out public/stylesheets或一些文件:
$ stylus one.styl two.styl為了開發(fā)的目的,你可以使用linenos選項發(fā)出指令在生成的CSS中顯示Stylus文件名以及行數(shù)。
$ stylus --line-numbers <path>或是firebug選項,如果你想使用firebug的FireStylus擴展。
$ stylus --firebug <path>轉(zhuǎn)換CSS
如果你想把CSS轉(zhuǎn)換成簡潔的Stylus語法,可以使用--css標志。
通過標準輸入輸出:
$ stylus --css < test.css > test.styl輸出基本名一致的.styl文件。
$ stylus --css test.css輸出特定的目標:
$ stylus --css test.css /tmp/out.stylCSS屬性的幫助
在OS X上,stylus help <prop>會打開你默認瀏覽器并顯示給定的<prop>屬性的幫助文檔。
$ stylus help box-shadow殼層交互(Interactive Shell)
Stylus REPL (Read-Eval-Print-Loop)或“殼層交互(Interactive Shell)”允許你直接在終端機上把玩Stylus的表達式。
注意只有表達式可以生效,而不是選擇器之類。為了簡單,我們添加-i或--interactive標志:
$ stylus -i
> color = white
=> #fff
> color - rgb(200,50,0)
=> #37cdff
> color
=> #fff
> color -= rgb(200,50,0)
=> #37cdff
> color
=> #37cdff
> rgba(color, 0.5)
=> rgba(55,205,255,0.5)利用插件
本例我們將使用nibStylus插件來說明它的CLI使用。
假設(shè)我們有如下的Stylus, 其導(dǎo)入nib并使用nib的linear-gradient()方法:
@import 'nib'
body
background: linear-gradient(20px top, white, black) 我們是使用stylus(1)通過標準輸入輸出試圖渲染的第一個東西可能就像下面這樣:
$ stylus < test.styl這可能會生成如下的錯誤,因為Stylus不知道去哪里找到nib.
Error: stdin:3
1|
2|
> 3| @import 'nib'
4|
5| body
6| background: linear-gradient(20px top, white, black)對于簡單應(yīng)用Stylus API們的插件,我們可以添加查找路徑。通過使用--include或-I標志:
$ stylus < test.styl --include ../nib/lib現(xiàn)在生成內(nèi)容如下。您可能注意到了,gradient-data-uri()以及create-gradient-image()以字面量形式輸出了。這是因為,當(dāng)插件提供JavaScript API的時候,光暴露插件的路徑是不夠的。但是,如果我們僅僅想要的是純粹Stylus nib函數(shù),則足夠了。
- body {
- background: url(gradient-data-uri(create-gradient-image(20px, top)));
- background: -webkit-gradient(linear, left top, left bottombottom, color-stop(0, #fff), color-stop(1, #000));
- background: -webkit-linear-gradient(top, #fff 0%, #000 100%);
- background: -moz-linear-gradient(top, #fff 0%, #000 100%);
- background: linear-gradient(top, #fff 0%, #000 100%);
- }
因此,我們需要做的是使用--use或-u標志。其會找尋node模塊(有或者沒有.js擴展名)路徑,這里的require()模塊或調(diào)用style.use(fn())來暴露該插件(定義js函數(shù)等)。
$ stylus < test.styl --use ../nib/lib/nib生成為:
- body {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAUCAYAAABMDlehAAAABmJLR0QA/wD/AP+gvaeTAAAAI0lEQVQImWP4+fPnf6bPnz8zMH358oUBwkIjKJBgYGNj+w8Aphk4blt0EcMAAAAASUVORK5CYII=");
- background: -webkit-gradient(linear, left top, left bottombottom, color-stop(0, #fff), color-stop(1, #000));
- background: -webkit-linear-gradient(top, #fff 0%, #000 100%);
- background: -moz-linear-gradient(top, #fff 0%, #000 100%);
- background: linear-gradient(top, #fff 0%, #000 100%);
- }
nodemon 插件
# npm install nodemon -g
- var css = require("stylus"),
- str = require("fs").readFileSync("style.styl", "utf8");
- css.render(str, { filename: "stylus.styl" }, function(err, css) {
- if (err) throw err;
- var http = require('http');
- http.createServer(function (req, res) {
- res.writeHead(200, {'Content-Type': 'text/css'});
- res.end(css);
- }).listen(1337, '127.0.0.1');
- console.log('已經(jīng)啟動 http://127.0.0.1:1337/');
- });
以上這篇stylus css 框架使用方法深入解析就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
- 下面小編就為大家?guī)硪黄獪\析CSS實現(xiàn)水平垂直同時居中的5種思路。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧2016-04-28
- 這篇文章主要介紹了CSS3近階段篇之酷炫的3D旋轉(zhuǎn)透視 的相關(guān)資料,需要的朋友可以參考下2016-04-28
- 這篇文章主要介紹了圖解CSS中position屬性的定位用法,重點講解了相對定位和絕對定位在頁面布局中的作用,需要的朋友可以參考下2016-04-28
- 這篇文章主要介紹了使用CSS的position控制頁面布局的入門教程,講解了position幾個常用值在布局中的作用,需要的朋友可以參考下2016-04-28
- 這篇文章主要介紹了CSS編寫中的屬性優(yōu)先級問題,重點講解了元素之間的層級計算以及繼承關(guān)系,需要的朋友可以參考下2016-04-28
- 這篇文章主要介紹了詳解CSS中的偽類與偽元素及二者間的區(qū)別,實際上CSS3中規(guī)范了一種簡單粗暴的方法,即偽類前用一個冒號表示,而偽元素前用兩個冒號表示,這樣就不容易混淆了,2016-04-28
- 下面小編就為大家?guī)硪黄P(guān)于css兼容性問題及一些常見問題匯總。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧,祝大家游戲愉快哦2016-05-03