less 快速入門(一)

Less 是一門 CSS 預處理語言,它擴充了 CSS 語言,增加了諸如變量、混合(mixin)、函數等功能,讓 CSS 更易維護、方便製作主題、擴充。

Less 可以運行在 Node、瀏覽器和 Rhino 平臺上。網上有很多第三方工具幫助你編譯 Less 源碼。

例如:

@base: #f938ab;

.box-shadow(@style, @c) when (iscolor(@c)) {
  -webkit-box-shadow: @style @c;
  box-shadow:         @style @c;
}
.box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) {
  .box-shadow(@style, rgba(0, 0, 0, @alpha));
}
.box {
  color: saturate(@base, 5%);
  border-color: lighten(@base, 30%);
  div { .box-shadow(0 0 5px, 30%) }
}

編譯爲:

.box {
  color: #fe33ac;
  border-color: #fdcdea;
}
.box div {
  -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}

Less 可以通過 npm 在命令行上運行;在瀏覽器上作爲腳本文件下載;或者集成在廣大的第三方工具內。請參考 用法 。

安裝

在服務器端最容易的安裝方式就是通過 npm (node.js 的包管理器),方法如下:

$ npm install -g less

命令行用法

安裝 Less 後,就可以在命令行上調用 Less 編譯器了,如下:

$ lessc styles.less

這將輸出編譯之後的 CSS 代碼到 stdout,你可以將輸出重定向到一個文件:

$ lessc styles.less > styles.css

若要輸出壓縮過的 CSS,只需添加 -x 選項。如果希望獲得更好的壓縮效果,還可以通過 --clean-css 選項啓用 Clean CSS 進行壓縮。

執行 lessc 且不帶任何參數,就會在命令行上輸出所有可用選項的列表。

在代碼中調用 Less

可以像下面這樣在代碼中調用 Less 編譯器(Node 平臺)。

var less = require('less');

less.render('.class { width: (1 + 1) }', function (e, css) {
  console.log(css);
});

輸出爲

.class {
  width: 2;
}

你還可以手動調用分析器(paser)和編譯器:

var parser = new(less.Parser);

parser.parse('.class { width: (1 + 1) }', function (err, tree) {
  if (err) {
    return console.error(err)
  }
  console.log(tree.toCSS());
});

配置

可以給編譯器傳遞多個參數:

var parser = new(less.Parser)({
  paths: ['.', './lib'], // Specify search paths for @import directives
  filename: 'style.less' // Specify a filename, for better error messages
});

parser.parse('.class { width: (1 + 1) }', function (e, tree) {
  tree.toCSS({
    // Minify CSS output
    compress: true
  });
});

Grunt

Less 還和流行的 Grunt 構建工具進行了集成,可以參考 grunt-contrib-less 插件。

第三方工具

請參考 用法 一節瞭解其它工具的細節。

客戶端用法

在瀏覽器上跑 less.js 非常方便開發,但是不推薦用於生產環境。

在客戶端使用 Less.js 是最容易的方式,並且在開發階段很方便,但是,在生產環境中,性能和可靠性非常重要,我們建議最好使用 node.js 或其它第三方工具進行預編譯

那就開始吧,在頁面中加入 .less 樣式表的鏈接,並將 rel 屬性設置爲 "stylesheet/less":

<link rel="stylesheet/less" type="text/css" href="styles.less" />

接下來,下載 less.js 並通過 <script></script> 標籤將其引入,放置於頁面的 <head> 元素內:

<script src="less.js" type="text/javascript"></script>

提示

  • 務必確保在 less.js 之前加載你的樣式表。
  • 如果加載多個 .less 樣式表文件,每個文件都會被單獨編譯。因此,一個文件中所定義的任何變量、mixin 或命名空間都無法在其它文件中訪問。

瀏覽器端設置參數

在 <script src="less.js"></script> 之前 定義全局的 less 對象就可以爲 Less.js 設置參數:

<!-- set options before less.js script -->
<script>
  less = {
    env: "development",
    async: false,
    fileAsync: false,
    poll: 1000,
    functions: {},
    dumpLineNumbers: "comments",
    relativeUrls: false,
    rootpath: ":/a.com/"
  };
</script>
<script src="less.js"></script>

瀏覽器端下載

下載 Less.js v1.7.0

下載源碼

直接從 GitHub 上下載最新的 Less.js 源碼。

通過 GitHub 克隆或 fork 本項目

通過 Bower 安裝

通過 Bower 安裝 Less.js 項目。

bower install less

Less CDN 加速

CDN.

<script src="http://cdn.bootcss.com/less.js/1.7.0/less.min.js"></script>
發佈了160 篇原創文章 · 獲贊 27 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章