less如何編譯
❶ visual studio怎麼編譯less
工具》擴展》選擇聯機搜索less編譯插件,我是已經安裝了所以搜索略過了,安裝後重啟就行,打開編寫less後生成一下
❷ less的LESS 原理及使用方式
本質上,LESS 包含一套自定義的語法及一個解析器,用戶根據這些語法定義自己的樣式規則,這些規則最終會通過解析器,編譯生成對應的 CSS 文件。LESS 並沒有裁剪 CSS 原有的特性,更不是用來取代 CSS 的,而是在現有 CSS 語法的基礎上,為 CSS 加入程序式語言的特性。 我們可以直接在客戶端使用 .less(LESS 源文件),只需要從http://lesscss.org下載 less.js 文件,然後在我們需要引入 LESS 源文件的 HTML 中加入如下代碼:
<link rel=stylesheet/less type=text/css href=styles.less>
LESS 源文件的引入方式與標准 CSS 文件引入方式一樣:
<link rel=stylesheet/less type=text/css href=styles.less>
需要注意的是:在引入 .less 文件時,rel 屬性要設置為「stylesheet/less」。還有更重要的一點需要注意的是:LESS 源文件一定要在 less.js 引入之前引入,這樣才能保證 LESS 源文件正確編譯解析。 LESS 在伺服器端的使用主要是藉助於 LESS 的編譯器,將 LESS 源文件編譯生成最終的 CSS 文件,目前常用的方式是利用 node 的包管理器 (npm) 安裝 LESS,安裝成功後就可以在 node 環境中對 LESS 源文件進行編譯。
在項目開發初期,我們無論採用客戶端還是伺服器端的用法,我們都需要想辦法將我們要用到的 CSS 或 LESS 文件引入到我們的 HTML 頁面或是橋接文件中,LESS 提供了一個我們很熟悉的功能— Importing。我們可以通過這個關鍵字引入我們需要的 .less 或 .css 文件。 如:
@import 「variables.less」;
.less 文件也可以省略後綴名,像這樣:
@import 「variables」;
引入 CSS 同 LESS 文件一樣,只是 .css 後綴名不能省略。 LESS 允許開發者自定義變數,變數可以在全局樣式中使用,變數使得樣式修改起來更加簡單。
我們可以從下面的代碼了解變數的使用及作用:
清單 3 LESS 文件 @border-color : #b5bcc7; .mythemes tableBorder{ border : 1px solid @border-color; }
經過編譯生成的 CSS 文件如下:
清單 4. CSS 文件 .mythemes tableBorder { border: 1px solid #b5bcc7; }
從上面的代碼中我們可以看出,變數是 VALUE(值)級別的復用,可以將相同的值定義成變數統一管理起來。
該特性適用於定義主題,我們可以將背景顏色、字體顏色、邊框屬性等常規樣式進行統一定義,這樣不同的主題只需要定義不同的變數文件就可以了。當然該特性也同樣適用於 CSS RESET(重置樣式表),在 Web 開發中,我們往往需要屏蔽瀏覽器默認的樣式行為而需要重新定義樣式表來覆蓋瀏覽器的默認行為,這里可以使用 LESS 的變數特性,這樣就可以在不同的項目間重用樣式表,我們僅需要在不同的項目樣式表中,根據需求重新給變數賦值即可。
LESS 中的變數和其他編程語言一樣,可以實現值的復用,同樣它也有生命周期,也就是 Scope(變數范圍,開發人員慣稱之為作用域),簡單的講就是局部變數還是全局變數的概念,查找變數的順序是先在局部定義中找,如果找不到,則查找上級定義,直至全局。下面我們通過一個簡單的例子來解釋 Scope。
清單 5. LESS 文件 @width : 20px; #homeDiv { @width : 30px; #centerDiv{ width : @width;// 此處應該取最近定義的變數 width 的值 30px } } #leftDiv { width : @width; // 此處應該取最上面定義的變數 width 的值 20px }
經過編譯生成的 CSS 文件如下:
清單 6. CSS 文件 #homeDiv #centerDiv { width: 30px; } #leftDiv { width: 20px; } Mixins(混入)功能對用開發者來說並不陌生,很多動態語言都支持 Mixins(混入)特性,它是多重繼承的一種實現,在 LESS 中,混入是指在一個 CLASS 中引入另外一個已經定義的 CLASS,就像在當前 CLASS 中增加一個屬性一樣。
我們先簡單看一下 Mixins 在 LESS 中的使用:
清單 7. LESS 文件// 定義一個樣式選擇器 .roundedCorners(@radius:5px) { -moz-border-radius: @radius; -webkit-border-radius: @radius; border-radius: @radius; } // 在另外的樣式選擇器中使用 #header { .roundedCorners; } #footer { .roundedCorners(10px); }
經過編譯生成的 CSS 文件如下:
清單 8. CSS 文件 #header { -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; } #footer { -moz-border-radius:10px; -webkit-border-radius:10px; border-radius:10px; }
從上面的代碼我們可以看出:Mixins 其實是一種嵌套,它允許將一個類嵌入到另外一個類中使用,被嵌入的類也可以稱作變數,簡單的講,Mixins 其實是規則級別的復用。
Mixins 還有一種形式叫做 Parametric Mixins(混入參數),LESS 也支持這一特性:
清單 9. LESS 文件// 定義一個樣式選擇器 .borderRadius(@radius){ -moz-border-radius: @radius; -webkit-border-radius: @radius; border-radius: @radius; } // 使用已定義的樣式選擇器 #header { .borderRadius(10px); // 把 10px 作為參數傳遞給樣式選擇器 } .btn { .borderRadius(3px);// // 把 3px 作為參數傳遞給樣式選擇器 }
經過編譯生成的 CSS 文件如下:
清單 10. CSS 文件 #header { -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; } .btn { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; }
我們還可以給 Mixins 的參數定義一人默認值,如
清單 11. LESS 文件.borderRadius(@radius:5px){ -moz-border-radius: @radius; -webkit-border-radius: @radius; border-radius: @radius; } .btn { .borderRadius; }
經過編譯生成的 CSS 文件如下:
清單 12. CSS 文件 .btn { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
像 javaScript 中arguments一樣,Mixins 也有這樣一個變數:@arguments。@arguments 在 Mixins 中具是一個很特別的參數,當 Mixins 引用這個參數時,該參數表示所有的變數,很多情況下,這個參數可以省去你很多代碼。
清單 13. LESS 文件 .boxShadow(@x:0,@y:0,@blur:1px,@color:#000){ -moz-box-shadow: @arguments; -webkit-box-shadow: @arguments; box-shadow: @arguments; } #header { .boxShadow(2px,2px,3px,#f36); }
經過編譯生成的 CSS 文件如下:
清單 14. CSS 文件 #header { -moz-box-shadow: 2px 2px 3px #FF36; -webkit-box-shadow: 2px 2px 3px #FF36; box-shadow: 2px 2px 3px #FF36; }
Mixins 是 LESS 中很重要的特性之一,我們這里也寫了很多例子,看到這些例子你是否會有這樣的疑問:當我們擁有了大量選擇器的時候,特別是團隊協同開發時,如何保證選擇器之間重名問題?如果你是 java 程序員或 C++ 程序員,我猜你肯定會想到命名空間 Namespaces,LESS 也採用了命名空間的方法來避免重名問題,於是乎 LESS 在 mixins 的基礎上擴展了一下,看下面這樣一段代碼:
清單 15. LESS 文件 #mynamespace { .home {...} .user {...} }
這樣我們就定義了一個名為 mynamespace 的命名空間,如果我們要復用 user 這個選擇器的時候,我們只需要在需要混入這個選擇器的地方這樣使用就可以了。#mynamespace > .user。 在我們書寫標准 CSS 的時候,遇到多層的元素嵌套這種情況時,我們要麼採用從外到內的選擇器嵌套定義,要麼採用給特定元素加 CLASS 或 ID 的方式。在 LESS 中我們可以這樣寫:
清單 16. HTML 片段 <div id=home> <div id=top>top</div> <div id=center> <div id=left>left</div> <div id=right>right</div> </div> </div>清單 17. LESS 文件 #home{ color : blue; width : 600px; height : 500px; border:outset; #top{ border:outset; width : 90%; } #center{ border:outset; height : 300px; width : 90%; #left{ border:outset; float : left; width : 40%; } #right{ border:outset; float : left; width : 40%; } } }
經過編譯生成的 CSS 文件如下:
清單 18. CSS 文件 #home { color: blue; width: 600px; height: 500px; border: outset; } #home #top { border: outset; width: 90%; } #home #center { border: outset; height: 300px; width: 90%; } #home #center #left { border: outset; float: left; width: 40%; } #home #center #right { border: outset; float: left; width: 40%; }
從上面的代碼中我們可以看出,LESS 的嵌套規則的寫法是 HTML 中的 DOM 結構相對應的,這樣使我們的樣式表書寫更加簡潔和更好的可讀性。同時,嵌套規則使得對偽元素的操作更為方便。
清單 19. LESS 文件a { color: red; text-decoration: none; &:hover {// 有 & 時解析的是同一個元素或此元素的偽類,沒有 & 解析是後代元素 color: black; text-decoration: underline; } }
經過編譯生成的 CSS 文件如下:
清單 20. CSS 文件 a { color: red; text-decoration: none; } a:hover { color: black; text-decoration: underline; } 在我們的 CSS 中充斥著大量的數值型的 value,比如 color、padding、margin 等,這些數值之間在某些情況下是有著一定關系的,那麼我們怎樣利用 LESS 來組織我們這些數值之間的關系呢?我們來看這段代碼:
清單 21 . LESS 文件 @init: #111111; @transition: @init*2; .switchColor { color: @transition; }
經過編譯生成的 CSS 文件如下:
清單 22. CSS 文件 .switchColor { color: #222222; }
上面的例子中使用 LESS 的 operation 是 特性,其實簡單的講,就是對數值型的 value(數字、顏色、變數等)進行加減乘除四則運算。同時 LESS 還有一個專門針對 color 的操作提供一組函數。
使用這些函數和 JavaScript 中使用函數一樣。
清單 23 LESS 文件init: #f04615; #body { background-color: fadein(@init, 10%); }
經過編譯生成的 CSS 文件如下:
清單 24. CSS 文件 #body { background-color: #f04615; }
從上面的例子我們可以發現,這組函數像極了 JavaScript 中的函數,它可以被調用和傳遞參數。這些函數的主要作用是提供顏色變換的功能,先把顏色轉換成 HSL 色,然後在此基礎上進行操作,LESS 還提供了獲取顏色值的方法,在這里就不舉例說明了。
LESS 提供的運算及函數特性適用於實現頁面組件特性,比如組件切換時的漸入漸出。 同類框架還有 SASS :與 LESS 相比,兩者都屬於 CSS 預處理器,功能上大同小異,都是使用類似程序式語言的方式書寫 CSS, 都具有變數、混入、嵌套、繼承等特性,最終目的都是方便 CSS 的書寫及維護。
LESS 和 SASS 互相促進互相影響,相比之下 LESS 更接近 CSS 語法。
❸ 如何使用lessc編譯.less文件
使用lessc編譯.less文件的方法
預備環境 iOS開發環境,Mac OS、XCode5.0以上版本;
下載HBuilder離線打包iOS版SDK(5+ SDK下載)。
SDK目錄說明: HBuilder-Hello:離線打包演示應用;
Feature-iOS.xls:iOS平台各擴展Feature API對應的庫文件列表;
❹ 如何用sublimeText3編寫less並用Nodejs自動編譯成css
1、安裝Sublime 插件
(1)安裝LESS插件:
因為Sublime不支持Less語法高亮,
所以,先安裝這個插件,
方法1: (首先確保sublime上已安裝了Package Control) 按住ctrl+shift+p>install Package>輸入less按Enter
方法2:直接下載後 解壓文件 放到插件文件夾下(首選項-瀏覽插件 打開文件夾)
下載地址:https://github.com/danro/LESS-sublime
(2)安裝LESS2CSS插件:
less2css的讀音 其實就是less to css
這個插件的作用是
當保存less文件的時候自動生成同名的css文件;
當保存less文件的時候提示編譯錯誤信息;
批量編譯項目目錄下的所有less文件為css文件。
安裝:
方法1:ctrl+shift+p>install Package>輸入less2css按Enter
方法2:直接下載:https://github.com/timdouglas/sublime-less2css
解壓文件 放到插件文件夾下
但是我們還要讓sublime支持less並自動編譯,所以還需以下步驟:
2、安裝Node.js
首先先配置一下環境,
less需要nodejs支持,
所以我們先要安裝一下nodejs
到nodejs官網下載就可以了:https://nodejs.org/en/
3、安裝less
運行-cmd:
輸入命令行:
npm install less -g
-g 代表著全局安裝less
之後在 Sublime 裡面建less文件時,會有一個錯誤
LESS: Unable to interpret argument clean-css
這是因為還需要一個插件
less-plugin-clean-css插件的安裝
命令行為:
npm install less-plugin-clean-css -g
接著重啟一下sublime,就搞定啦!
❺ less 預編譯
安裝
npm install -g less
轉換 文件+轉換後文件名字 (會在當前文件夾生成文件)
lessc styles.less styles.css
+壓縮
lessc --clean-css styles.less styles.min.css
使用
@color: #ccc; 變數
.h1{
color:@color;
}
混合(或者叫less的函數)
這里是函數
.rounded(@radius:5px){
border-radius: @radius;
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
}
混合使用
.header{
.rounded; 使用默認的5px圓角
.rounded(10px); 設置10px圓角
}
.rounded(@top-left,@top-right,@bottom-right,@bottom-left){
border-radius: @top-left,@top-right,@bottom-right,@bottom-left;
-webkit-border-radius: @top-left,@top-right,@bottom-right,@bottom-left;
-moz-border-radius: @top-left,@top-right,@bottom-right,@bottom-left;
}
.header{
.rounded; 使用默認的圓角
.rounded(10px,10px,10px,10px); 設置左上-右上-左下-右下的圓角
}
嵌套規則
.title{
}
.span{
}
}
.content{
&:after{ //&代表自己 所以可以用偽類元素
}
}
函數與運算
@the-border: 1px;
@base-color: #111;
@red: #842210;
}
降級 如@red*10%的顏色
}
❻ 怎樣用node.js編譯less文件
輸入npm install -g less,完成全局安裝less編譯模塊
輸入lessc (需要編譯的less文件名稱及路徑)>(編譯生成的CSS文件名稱及路徑):
❼ 怎麼使用Less/Sass編譯工具koala
一、SASS調試插件的方法
如需調試功能,請在編譯輸出的時候輸出debug信息,那樣解析的css文件中就會包含debug信息,然後通過firebug或谷歌的調試工具就可以定位到我們編輯的scss文件,而不是解析後的css文件。
如果光做好SASS的准備工作還不夠,還需要讓瀏覽器支持SASS。那麼就需要一個瀏覽器的插件才能讓瀏覽器識別SASS,從而方便開發人員進行開發。
如需調試功能,請在編譯輸出的時候輸出debug信息,那樣解析的css文件中就會包含debug信息,然後通過firebug或谷歌的調試工具就可以定位到我們編輯的scss文件,而不是解析後的css文件。(如圖1-1)
圖1-1
如果你的css文件中沒有以@media -sass-debug-info開頭的代碼,說明沒有輸出debug信息。請重新使用koala工具編譯你的scss文件,並確定已經勾選了debug信息這個選項。
在火狐中調試,只需要再下載FireSass→即可。
二、編譯工具koala的安裝
1、進入頁面
2、根據系統下載所需要的koala的版本
3、然後在下載文件夾中安裝下載的EXE文件,即可安裝成功
三、編譯工具koala的優點
1、多語言支持:支持Less、Sass、CoffeeScript 和 Compass Framework。
2、實時編譯:監聽文件,當文件改變時自動執行編譯,這一切都在後台運行,無需人工操作。
3、編譯選項:既可統一設置文件的編譯選項,也可單獨設置某個文件的編譯選項。
4、強大的文件右鍵功能:右鍵文件元素,即可操作打開文件,打開文件目錄,打開輸出文件目錄,設置輸出文件目錄,編譯,刪除六大常用功能。
5、錯誤提示:在編譯時如果遇到語法的錯誤,koala將在右下角彈出錯誤信息,方便開發者定位代碼錯誤位置。
6、跨平台:windows、linux、mac都能完美運行。
7、免費且負責:koala完全免費,而且作者很負責,有什麼問題作者都會及時給予答復,意見什麼的可以直接提交給作者,一般在下一個版本就能得到解決。
❽ h5 less怎樣編譯成css
看你用的IDE,先用npm安裝好less插件,在webstorm可以配置less的文件位置
hbulider可以在預編譯器中制定less插件將less編譯為css
❾ bootstrap中文網上的less怎麼用grunt編譯
始做點功能吧:Grunt實現Less實時編譯,web伺服器。
實現這些功能,
主要的就是安裝Grunt插件、編寫配置文件的工作。
安裝很簡單。
主要講解這個配置文件吧。
Gruntfile.js文件:
mole.exports = function(grunt) {
// include connect-include
var ssInclude = require("connect-include");
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
less: {
development: {
files: [{
expand: true,
cwd: './static/less',
src: ['**/*.less'],
dest: 'static/css',
ext: '.css'
}]
}
},
watch: {
options: {
livereload: true
},
scripts: {
files: ['./static/less/**/*.less'],
tasks: ['less'],
options: {
spawn: false,
},
},
},
connect: {
server: {
options: {
port: 8080,
// 在connect與watch同時運行的時候,keepalive不能為true
,這里注釋了keepalive,因為他的默認值就是false。
// keepalive: true,
// livereload: true,
base: './static',
middleware: function(connect, options) {
// Same as in grunt-contrib-connect
var middlewares = [];
var directory = options.directory || options.base[options.base.length - 1];
if (!Array.isArray(options.base)) {
options.base = [options.base];
}
// Here we insert connect-include, use the same pattern to add other middleware
middlewares.push(ssInclude(directory));
// Same as in grunt-contrib-connect
options.base.forEach(function(base) {
middlewares.push(connect.static(base));
});
middlewares.push(connect.directory(directory));
return middlewares;
}
}
}
}
});
// Load the plugin that provides the "uglify" task.
// grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s).
// grunt.registerTask('default', ['uglify']);
grunt.registerTask('default', [ 'connect','watch']);
//使用watch,實時編譯less成功
};
package.json文件:
{
"name": "Grunt-base",
"version": "0.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"grunt": "^0.4.5",
"grunt-contrib-connect": "^0.9.0",
"grunt-contrib-less": "^1.0.0",
"grunt-contrib-watch": "^0.6.1"
},
"dependencies": {
"connect-include": "^0.2.1"
}
}
插件安裝完成,
寫好項目配置文件,運行:
使用CMD命令行:grunt
瀏覽器訪問http://127.0.0.1:8080/ 查看效果:
常見的構建工具:
Grunt、FIS(網路出品)等。
FIS也是一個不錯的構建工具。
目前很多的Web前端構建工具都是Node.js寫的。
我的項目結構:
注意事項:
如果你在使用中,grunt-contrib-connect、grunt-contrib-watch兩個同時搭配使用,出現不能正常工作的問題,要注意這個connect的這個配置:keepalive: false。
如果沒有配合grunt-contrib-watch的時候,keepalive配置往往是true,配合watch監聽的話,這個值就是false。
❿ 如何使用lessc編譯.less文件
這是一個簡單的測試代碼test.less,內容如下
@color: #4D926F;#header { color: @color;}h2 { color: @color;}
該文件位於 E:\Code\VS2013\BootstrapDemo\LessDemo\Less\test.less。
啟動node.js控制台,進入test.less文件所在的目錄,輸入lessc test.less > test.css命令,less文件就會被編譯成css文件