十分鍾看懂Css、less和Sass(SCSS)的區別


隨着前端開發的不斷發展,CSS也逐漸延伸出了很多新的語言,lessSass就是其中兩種,下面我們就一起來看看它們到底有何區別。

 

 

 

背景

 

CSS(層疊樣式表)是一門非程序式語言,入門學習使用非常直觀方便,但是對於一些比較復雜或者重用性比較強的項目來說,因為CSS沒有變量、函數、SCOPE(作用域),需要書寫大量看似沒有邏輯的代碼,不方便維護及擴展,不利於復用,尤其對於非前端開發工程師來講,往往會因為缺少 CSS 編寫經驗而很難寫出組織良好且易於維護的 CSS 代碼。為了方便前端開發的工作量,出現了sassless

 

SASSLESS

 

SASS(英文全稱:Syntactically Awesome StylesheetsSass 誕生於 2007 年,使用Ruby 編寫,是一種對css的一種擴展提升,增加了規則、變量、混入、選擇器、繼承等等特性。可以理解為用js的方式去書寫,然后編譯成css。比如說,sass中可以把反復使用的css屬性值定義成變量,然后通過變量名來引用它們,而無需重復書寫這一屬性值。

 

LESS2009年開源的一個項目,受Sass的影響較大,但又使用CSS的語法,讓大部分開發者和設計師更容易上手。LESS保留了css的任何功能,同時提供了多種方式能平滑的將寫好的代碼轉化成標准的CSS代碼,可以在任何使用隨時切換到css的語法進行書寫。

 

SASSLESS****使用

 

傳統的css可以直接被html引用,但是sassless由於使用了類似JavaScript的方式去書寫,所以必須要經過編譯生成css,而html引用只能引用編譯之后的css文件,雖然過程多了一層,但是畢竟sass/less在書寫的時候就方便很多,所以在我們使用sass/less之前,只要我們提前設置好,就可以直接生成對應的css文件,而我們只需要關心我們的sass/less文件即可。

 

Sass的語法規則,可以參考下SASS中文網:<u>https://www.sass.hk/</u>

 

SASS技術的文件的后綴名有兩種形式:.sass.scss。其實兩者都是同一種東西,兩種均可以可以通過編譯生成瀏覽器能識別的css文件。這兩種的區別:

 

擴展名不同;

 

 

 

SCSS 的語法書寫和CSS 語法書寫方式非常類似,.sass文件對代碼的排版有着非常嚴格的要求,而且沒有大括號,沒有分號;

 

 

 

Sass 語法

 

$font-stack: Helvetica, sans-serif //定義變量

 

$primary-color: #333 //定義變量

 

body

 

font: 100% $font-stack

 

color: $primary-color

 

SCSS 語法

 

$font-stack: Helvetica, sans-serif;

 

$primary-color: #333;

 

body {

 

font: 100% $font-stack;

 

color: $primary-color;

 

}

 

編譯出來的 CSS

 

body {

 

font: 100% Helvetica, sans-serif;

 

color: #333;

 

}

 

LESS技術的后綴名只有一種,就是.less,語法規則和sass大同小異,詳細可以參考less中文網<u>http://lesscss.cn/</u>

 

LESS使用分為兩種:

 

  1. 直接在瀏覽器中引入less編譯器js文件和less文件,直接渲染編譯為css文應用到當前頁面中。

 

2.less文件通過編譯成為css之后引用css

 

/* Less */

 

  @color: #999;

 

 

 

  @bgColor: skyblue;//不要添加引號

 

 

 

  @width: 50%;

 

 

 

  #wrap {

 

color: @color;

 

width: @width;

 

  }

 

/* 生成后的 CSS */

 

  #wrap {

 

 

 

    color: #999;

 

width: 50%;

 

  }

 

 

 

 

關於SASS和LESS的概念就是這樣,如果想要繼續深入了解更詳細語法,恐怕就得多花功夫了,不過,學好SASS和LESS對你的前端發展絕對是有很大幫助的。加油,努力成為前端大神。


免責聲明!

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



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