Scss與Less區別


Scss與Less區別

一. Sass/Scss、Less是什么?

Sass (Syntactically Awesome Stylesheets)是一種動態樣式語言,Sass語法屬於縮排語法,比css比多出好些功能(如變量、嵌套、運算,混入(Mixin)、繼承、顏色處理,函數等),更容易閱讀。

Sass與Scss是什么關系?

Sass的縮排語法,對於寫慣css前端的web開發者來說很不直觀,也不能將css代碼加入到Sass里面,因此sass語法進行了改良,Sass 3就變成了Scss(sassy css)。與原來的語法兼容,只是用{}取代了原來的縮進。

Less也是一種動態樣式語言. 對CSS賦予了動態語言的特性,如變量,繼承,運算, 函數.  Less 既可以在客戶端上運行 (支持IE 6+, Webkit, Firefox),也可在服務端運行 (借助 Node.js)。

二. Sass/Scss與Less區別

1.編譯環境不一樣

Sass的安裝需要Ruby環境,是在服務端處理的,而Less是需要引入less.js來處理Less代碼輸出css到瀏覽器,也可以在開發環節使用Less,然后編譯成css文件,直接放到項目中,也有 Less.app、SimpleLess、CodeKit.app這樣的工具,也有在線編譯地址。

2.變量符不一樣,Less是@,而Scss是$,而且變量的作用域也不一樣。

復制代碼
Less-作用域
@color: #00c; /* 藍色 */
#header {
  @color: #c00; /* red */
  border: 1px solid @color; /* 紅色邊框 */
}

#footer {
  border: 1px solid @color; /* 藍色邊框 */
}

Less-作用域編譯后
#header{border:1px solid #cc0000;}
#footer{border:1px solid #0000cc;}

scss-作用域
$color: #00c; /* 藍色 */

#header {

  $color: #c00; /* red */
  border: 1px solid $color; /* 紅色邊框 */
}

#footer {
  border: 1px solid $color; /* 藍色邊框 */
}

Sass-作用域編譯后

#header{border:1px solid #c00}
#footer{border:1px solid #c00}

我們可以看出來,less和scss中的變量會隨着作用域的變化而不一樣。
復制代碼

 

3.輸出設置,Less沒有輸出設置,Sass提供4中輸出選項:nested, compact, compressed 和 expanded。

輸出樣式的風格可以有四種選擇,默認為nested

  • nested:嵌套縮進的css代碼
  • expanded:展開的多行css代碼
  • compact:簡潔格式的css代碼
  • compressed:壓縮后的css代碼

4.Sass支持條件語句,可以使用if{}else{},for{}循環等等。而Less不支持。

復制代碼
/* Sample Sass “if” statement */

@if lightness($color) > 30% {

} @else {

}

/* Sample Sass “for” loop */

@for $i from 1 to 10 {
  .border-#{$i} {
    border: #{$i}px solid blue;
  }
}
復制代碼

 5. 引用外部CSS文件

scss引用的外部文件命名必須以_開頭, 如下例所示:其中_test1.scss、_test2.scss、_test3.scss文件分別設置的h1 h2 h3。文件名如果以下划線_開頭的話,Sass會認為該文件是一個引用文件,不會將其編譯為css文件.

復制代碼
// 源代碼:
@import "_test1.scss";
@import "_test2.scss";
@import "_test3.scss";

// 編譯后: h1 { font-size: 17px; } h2 { font-size: 17px; } h3 { font-size: 17px; }
復制代碼

Less引用外部文件和css中的@import沒什么差異。

6.Sass和Less的工具庫不同

Sass有工具庫Compass, 簡單說,Sass和Compass的關系有點像Javascript和jQuery的關系,Compass是Sass的工具庫。在它的基礎上,封裝了一系列有用的模塊和模板,補充強化了Sass的功能。

Less有UI組件庫Bootstrap,Bootstrap是web前端開發中一個比較有名的前端UI組件庫,Bootstrap的樣式文件部分源碼就是采用Less語法編寫。

 

三. 總結

不管是Sass,還是Less,都可以視為一種基於CSS之上的高級語言,其目的是使得CSS開發更靈活和更強大,Sass的功能比Less強大,基本可以說是一種真正的編程語言了,Less則相對清晰明了,易於上手,對編譯環境要求比較寬松。考慮到編譯Sass要安裝Ruby,而Ruby官網在國內訪問不了,個人在實際開發中更傾向於選擇Less。

gulp

 

簡介:

gulp是前端開發過程中對代碼進行構建的工具,是自動化項目的構建利器;她不僅能對網站資源進行優化,而且在開發過程中很多重復的任務能夠使用正確的工具自動完成;使用她,我們不僅可以很愉快的編寫代碼,而且大大提高我們的工作效率。

 

gulp是基於Nodejs的自動任務運行器, 她能自動化地完成 javascript/coffee/sass/less/html/image/css 等文件的的測試、檢查、合並、壓縮、格式化、瀏覽器自動刷新、部署文件生成,並監聽文件在改動后重復指定的這些步驟。在實現上,她借鑒了Unix操作系統的管道(pipe)思想,前一級的輸出,直接變成后一級的輸入,使得在操作上非常簡單。通過本文,我們將學習如何使用Gulp來改變開發流程,從而使開發更加快速高效。

 

gulp 和 grunt 非常類似,但相比於 grunt 的頻繁 IO 操作,gulp 的流操作,能更快地更便捷地完成構建工作。

 

本示例以gulp-less為例(將less編譯成css的gulp插件)展示gulp的常規用法,只要我們學會使用一個gulp插件后,其他插件就差看看其幫助文檔了。讓我們一起來學習gulp吧! ^_^

 

gulp常用地址:

 

gulp官方網址:http://gulpjs.com

 

gulp插件地址:http://gulpjs.com/plugins

 

gulp 官方API:https://github.com/gulpjs/gulp/blob/master/docs/API.md

 

gulp 中文API:http://www.ydcss.com/archives/424

 

目錄:

 

 

在學習前,先談談大致使用gulp的步驟,給讀者以初步的認識。首先當然是安裝nodejs,通過nodejs的npm全局安裝和項目安裝gulp,其次在項目里安裝所需要的gulp插件,然后新建gulp的配置文件gulpfile.js並寫好配置信息(定義gulp任務),最后通過命令提示符運行gulp任務即可。

 

安裝nodejs -> 全局安裝gulp -> 項目安裝gulp以及gulp插件 -> 配置gulpfile.js -> 運行任務

 

1、安裝nodejs

 

1.1、說明:gulp是基於nodejs,理所當然需要安裝nodejs;

 

1.2、安裝:打開nodejs官網,點擊碩大的綠色Download按鈕,它會根據系統信息選擇對應版本(.msi文件)。然后像安裝QQ一樣安裝它就可以了(安裝路徑隨意)。

 

2、使用命令行(如果你熟悉命令行,可以直接跳到第3步

 

2.1、說明:什么是命令行?命令行在OSX是終端(Terminal),在windows是命令提示符(Command Prompt);

 

2.2、注:之后操作都是在windows系統下;

 

2.3、簡單介紹gulp在使用過程中常用命令,打開命令提示符執行下列命令(打開方式:window + r 輸入cmd回車):

 

node -v查看安裝的nodejs版本,出現版本號,說明剛剛已正確安裝nodejs。PS:未能出現版本號,請嘗試注銷電腦重試;

 

npm -v查看npm的版本號,npm是在安裝nodejs時一同安裝的nodejs包管理器,那它有什么用呢?稍后解釋

 

cd定位到目錄,用法:cd + 路徑 ;

 

dir列出文件列表;

 

cls清空命令提示符窗口內容。

 

 

3、npm介紹

 

3.1、說明:npm(node package manager)nodejs的包管理器,用於node插件管理(包括安裝、卸載、管理依賴等);

 

3.2、使用npm安裝插件:命令提示符執行npm install <name> [-g] [--save-dev]

 

3.2.1、<name>:node插件名稱。例:npm install gulp-less --save-dev

 

3.2.2、-g:全局安裝。將會安裝在C:\Users\Administrator\AppData\Roaming\npm,並且寫入系統環境變量;  非全局安裝:將會安裝在當前定位目錄;  全局安裝可以通過命令行在任何地方調用它,本地安裝將安裝在定位目錄的node_modules文件夾下,通過require()調用;

 

3.2.3、--save:將保存配置信息至package.json(package.json是nodejs項目配置文件);

 

3.2.4、-dev:保存至package.json的devDependencies節點,不指定-dev將保存至dependencies節點;一般保存在dependencies的像這些express/ejs/body-parser等等。

 

3.2.5、為什么要保存至package.json?因為node插件包相對來說非常龐大,所以不加入版本管理,將配置信息寫入package.json並將其加入版本管理,其他開發者對應下載即可(命令提示符執行npm install,則會根據package.json下載所有需要的包,npm install --production只下載dependencies節點的包)。

 

3.3、使用npm卸載插件:npm uninstall <name> [-g] [--save-dev]  PS:不要直接刪除本地插件包

 

3.3.1、刪除全部插件:npm uninstall gulp-less gulp-uglify gulp-concat ……???太麻煩

 

3.3.2、借助rimraf:npm install rimraf -g 用法:rimraf node_modules

 

3.4、使用npm更新插件:npm update <name> [-g] [--save-dev]

 

3.4.1、更新全部插件:npm update [--save-dev]

 

3.5、查看npm幫助:npm help

 

3.6、當前目錄已安裝插件:npm list

 

PS:npm安裝插件過程:從http://registry.npmjs.org下載對應的插件包(該網站服務器位於國外,所以經常下載緩慢或出現異常),解決辦法往下看↓↓↓↓↓↓。

 

4、選裝cnpm

 

4.1、說明:因為npm安裝插件是從國外服務器下載,受網絡影響大,可能出現異常,如果npm的服務器在中國就好了,所以我們樂於分享的淘寶團隊干了這事。32個!來自官網:“這是一個完整 npmjs.org 鏡像,你可以用此代替官方版本(只讀),同步頻率目前為 10分鍾 一次以保證盡量與官方服務同步。”

 

4.2、官方網址:http://npm.taobao.org

 

4.3、安裝:命令提示符執行npm install cnpm -g --registry=https://registry.npm.taobao.org;  注意:安裝完后最好查看其版本號cnpm -v或關閉命令提示符重新打開,安裝完直接使用有可能會出現錯誤;

 

注:cnpm跟npm用法完全一致,只是在執行命令時將npm改為cnpm(以下操作將以cnpm代替npm)。

 

5、全局安裝gulp

 

5.1、說明:全局安裝gulp目的是為了通過她執行gulp任務;

 

5.2、安裝:命令提示符執行cnpm install gulp -g

 

5.3、查看是否正確安裝:命令提示符執行gulp -v,出現版本號即為正確安裝。

 

6、新建package.json文件

 

6.1、說明:package.json是基於nodejs項目必不可少的配置文件,它是存放在項目根目錄的普通json文件;

 

6.2、它是這樣一個json文件(注意:json文件內是不能寫注釋的,復制下列內容請刪除注釋)

 

 

6.3、當然我們可以手動新建這個配置文件,但是作為一名有志青年,我們應該使用更為效率的方法:命令提示符執行cnpm init

 

 

6.4、查看package.json幫助文檔,命令提示符執行cnpm help package.json

 

特別注意:package.json是一個普通json文件,所以不能添加任何注釋。參看 http://www.zhihu.com/question/23004511

 

7、本地安裝gulp插件

 

7.1、安裝:定位目錄命令后提示符執行cnpm install --save-dev

 

7.2、本示例以gulp-less為例(編譯less文件),命令提示符執行cnpm install gulp-less --save-dev

 

 

7.3、將會安裝在node_modules的gulp-less目錄下,該目錄下有一個gulp-less的使用幫助文檔README.md;

 

7.4、為了能正常使用,我們還得本地安裝gulp:cnpm install gulp --save-dev

 

PS:細心的你可能會發現,我們全局安裝了gulp,項目也安裝了gulp,全局安裝gulp是為了執行gulp任務,本地安裝gulp則是為了調用gulp插件的功能。

 

8、新建gulpfile.js文件(重要)

 

8.1、說明:gulpfile.js是gulp項目的配置文件,是位於項目根目錄的普通js文件(其實將gulpfile.js放入其他文件夾下亦可)。

 

8.2、它大概是這樣一個js文件(更多插件配置請查看這里):

 

 

8.3、該示例文件請下載查看

 

9、運行gulp

 

9.1、說明:命令提示符執行gulp 任務名稱

 

9.2、編譯less:命令提示符執行gulp testLess

 

9.3、當執行gulp defaultgulp將會調用default任務里的所有任務[‘testLess’,’elseTask’]。

 

10、使用webstorm運行gulp任務

 

10.1、說明:使用webstorm可視化運行gulp任務;

 

10.2、使用方法:將項目導入webstorm,右鍵gulpfile.js 選擇”Show Gulp Tasks”打開Gulp窗口,若出現”No task found”,選擇右鍵”Reload tasks”,雙擊運行即可。

 

 

11、總結

 

11.1、安裝nodejs;

 

11.2、新建package.json文件;

 

11.3、全局和本地安裝gulp;

 

11.4、安裝gulp插件;

 

11.5、新建gulpfile.js文件;

 

11.6、通過命令提示符運行gulp任務。

 

CMD命令

    1. cmd命令大全(第一部分)
        winver---------檢查Windows版本 
        wmimgmt.msc----打開windows管理體系結構(WMI) 
        wupdmgr--------windows更新程序 
        wscript--------windows腳本宿主設置 
        write----------寫字板 
        winmsd---------系統信息 
        wiaacmgr-------掃描儀和照相機向導 
        winchat--------XP自帶局域網聊天
    2. 2
      cmd命令大全(第二部分)
        mem.exe--------顯示內存使用情況 
        Msconfig.exe---系統配置實用程序 
        mplayer2-------簡易widnows media player 
        mspaint--------畫圖板 
        mstsc----------遠程桌面連接 
        mplayer2-------媒體播放機 
        magnify--------放大鏡實用程序 
        mmc------------打開控制台 
        mobsync--------同步命令
    3. 3
      cmd命令大全(第三部分)
        dxdiag---------檢查DirectX信息 
        drwtsn32------ 系統醫生 
        devmgmt.msc--- 設備管理器 
        dfrg.msc-------磁盤碎片整理程序 
        diskmgmt.msc---磁盤管理實用程序 
        dcomcnfg-------打開系統組件服務 
        ddeshare-------打開DDE共享設置 
        dvdplay--------DVD播放器
    4. 4
      cmd命令大全(第四部分)
        net stop messenger-----停止信使服務 
        net start messenger----開始信使服務 
        notepad--------打開記事本 
        nslookup-------網絡管理的工具向導 
        ntbackup-------系統備份和還原 
        narrator-------屏幕“講述人” 
        ntmsmgr.msc----移動存儲管理器 
        ntmsoprq.msc---移動存儲管理員操作請求 
        netstat -an----(TC)命令檢查接口
    5. 5
      cmd命令大全(第五部分)
        syncapp--------創建一個公文包 
        sysedit--------系統配置編輯器 
        sigverif-------文件簽名驗證程序 
        sndrec32-------錄音機 
        shrpubw--------創建共享文件夾 
        secpol.m轉載自電腦十萬個為什么http://www.qq880.com,請保留此標記sc-----本地安全策略 
        syskey---------系統加密,一旦加密就不能解開,保護windows xp系統的雙重密碼 
        services.msc---本地服務設置 
        Sndvol32-------音量控制程序 
        sfc.exe--------系統文件檢查器 
        sfc /scannow---windows文件保護
    6. 6
      cmd命令大全(第六部分)
        tsshutdn-------60秒倒計時關機命令 
        tourstart------xp簡介(安裝完成后出現的漫游xp程序) 
        taskmgr--------任務管理器 
        eventvwr-------事件查看器 
        eudcedit-------造字程序 
        explorer-------打開資源管理器 
        packager-------對象包裝程序 
        perfmon.msc----計算機性能監測程序 
        progman--------程序管理器 
        regedit.exe----注冊表 
        rsop.msc-------組策略結果集 
        regedt32-------注冊表編輯器 
        rononce -p ----15秒關機 
        regsvr32 /u *.dll----停止dll文件運行 
        regsvr32 /u zipfldr.dll------取消ZIP支持
    7. 7
      cmd命令大全(第七部分)
        cmd.exe--------CMD命令提示符 
        chkdsk.exe-----Chkdsk磁盤檢查 
        certmgr.msc----證書管理實用程序 
        calc-----------啟動計算器 
        charmap--------啟動字符映射表 
        cliconfg-------SQL SERVER 客戶端網絡實用程序 
        Clipbrd--------剪貼板查看器 
        conf-----------啟動netmeeting 
        compmgmt.msc---計算機管理 
        cleanmgr-------垃圾整理 
        ciadv.msc------索引服務程序 
        osk------------打開屏幕鍵盤 
        odbcad32-------ODBC數據源管理器 
        oobe/msoobe /a----檢查XP是否激活 
        lusrmgr.msc----本機用戶和組 
        logoff---------注銷命令 
        iexpress-------木馬捆綁工具,系統自帶 
        Nslookup-------IP地址偵測器 
        fsmgmt.msc-----共享文件夾管理器 
        utilman--------輔助工具管理器 
        gpedit.msc-----組策略

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM