stylus--css 框架使用方法

来源:http://www.cnblogs.com/shouce/archive/2016/04/28/5441259.html
-Advertisement-
Play Games

Stylus是一款需要編譯的css語言,所以其本身文件不能被html直接調用,需要要編譯為css文件後再進行日常的載入。 stylus是一款優秀的css編譯語言,需要node.js支持,第一步需要安裝node.js 問題:Windows調試時ctrl+d無效果 ctrl+c退出? 怎樣直接在wind ...


  Stylus是一款需要編譯的css語言,所以其本身文件不能被html直接調用,需要要編譯為css文件後再進行日常的載入。

stylus是一款優秀的css編譯語言,需要node.js支持,第一步需要安裝node.js

問題:Windows調試時ctrl+d無效果 ctrl+c退出? 怎樣直接在windows下輸出調試代碼

 

備註:# 代表本行是輸入回車運行行

官方網站下載nodejs

複製代碼
   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 同時配置環境為全局方法

4 調試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調試返回結果

看看是否會返回

複製代碼
body {
  font: 12px Helvetica, Arial, sans-serif;
}
a.button {
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
}
複製代碼

5 styus文件的編譯

創建一個test.styl 的文件,文件內容如下:

複製代碼
 1 border-radius()
 2   -webkit-border-radius arguments
 3   -moz-border-radius arguments
 4   border-radius arguments
 5   
 6 body
 7   font 12px Helvetica, Arial, sans-serif
 8   
 9 a.button
10   border-radius 5px
複製代碼

保存關閉,在命令行運行如下命令:

# stylus --compress < test.styl > test.css

看看是不是獲得一個test.css的文件,看看內容是否如下:

複製代碼
1 body{
2 font:12px Helvetica,Arial,sans-serif
3 }
4 a.button{
5 -webkit-border-radius:5px;
6 -moz-border-radius:5px;
7 border-radius:5px
8 }
複製代碼

這樣一個stylus的文件就被編譯成了html可以調用的css文件了。

 附錄:

編譯文件範例

stylus亦接受文件和目錄。例如,一個目錄名為css將在同一目錄編譯並輸出.css文件。

$ stylus css

下麵的將會輸出到./public/stylesheets:

$ stylus css --out public/stylesheets

或一些文件:

$ stylus one.styl two.styl

為了開發的目的,你可以使用linenos選項發出指令在生成的CSS中顯示Stylus文件名以及行數。

$ stylus --line-numbers <path>

或是firebug選項,如果你想使用firebug的FireStylus擴展

$ stylus --firebug <path>
轉換CSS

如果你想把CSS轉換成簡潔的Stylus語法,可以使用--css標誌。

通過標準輸入輸出:

$ stylus --css < test.css > test.styl

輸出基本名一致的.styl文件。

$ stylus --css test.css

輸出特定的目標:

$ stylus --css test.css /tmp/out.styl
CSS屬性的幫助

在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使用。

假設我們有如下的Stylus, 其導入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)

對於簡單應用Stylus API們的插件,我們可以添加查找路徑。通過使用--include-I標誌:

$ stylus < test.styl --include ../nib/lib

現在生成內容如下。您可能註意到了,gradient-data-uri()以及create-gradient-image()以字面量形式輸出了。這是因為,當插件提供JavaScript API的時候,光暴露插件的路徑是不夠的。但是,如果我們僅僅想要的是純粹Stylus nib函數,則足夠了。

body {
  background: url(gradient-data-uri(create-gradient-image(20px, top)));
  background: -webkit-gradient(linear, left top, left bottom, 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()模塊或調用style.use(fn())來暴露該插件(定義js函數等)。

$ 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 bottom, 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
複製代碼
 1 var css = require("stylus"), 
 2     str = require("fs").readFileSync("style.styl", "utf8");
 3     
 4 css.render(str, { filename: "stylus.styl" }, function(err, css) {
 5     if (err) throw err;
 6     var http = require('http');
 7     http.createServer(function (req, res) {
 8         res.writeHead(200, {'Content-Type': 'text/css'});
 9         res.end(css);
10     }).listen(1337, '127.0.0.1');
11     console.log('已經啟動 http://127.0.0.1:1337/');
12 });
複製代碼

 

 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Delphi 開發 ERP ...
  • Java中可以使用HttpURLConnection來請求WEB資源。HttpURLConnection對象不能直接構造,需要通過URL.openConnection()來獲得HttpURLConnection對象,示例代碼如下:String szUrl = "http://www.ee2ee.co ...
  • Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n. For example, given n = 12, ...
  • 核心技術:Maven,Springmvc mybatis shiro, Druid, Restful, Dubbo, ZooKeeper,Redis,FastDFS,ActiveMQ,Nginx 1. 項目核心代碼結構截圖 項目模塊依賴 特別提醒:開發人員在開發的時候可以將自己的業務REST服務化或 ...
  • ...
  • 上一篇:《 "DDD 領域驅動設計-如何控制業務流程?" 》 開源地址: "https://github.com/yuezhongxin/CNBlogs.Apply.Sample" (代碼已更新,並增加了應用層代碼) 在 JsPermissionApply 領域模型中,User 被設計為值對象,也就 ...
  • 第一章介紹了android系統移植與驅動開發的一些基本的概念,我做瞭如下總結: 一、android的系統架構分為四層 第一層是linux內核層 第二層是c/c++代碼庫 第三層是android Sdk API 第四層是應用程式層 android系統移植與驅動開發主要就是在linux內核層上進行的。a ...
  • oaoDailog開發幫助 1. 幫助文檔關鍵字 boostrap模態框oaoDailog 2. 使用場景 當網頁上點擊某個按鈕需要給予用戶提示確認,用戶點擊確認按鈕才能繼續執行,或者用戶點擊取消按鈕則取消執行操作; 當網頁上點擊查看,展示的數據需要使用彈出框展示的情況下,可以使用oaoDailog ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...