最好用的css輔助工具——SASS&LESS

CSS 程序員 HTML 基金 IT優就業 IT優就業 2017-10-10

最好用的css輔助工具——SASS&LESS

前言:

首先,小編給大家解釋一下什麼是SCSS和LESS,Sass 是一款強化 CSS 的輔助工具,它在 CSS 語法的基礎上增加了變量 (variables)、嵌套 (nested rules)、混合 (mixins)、導入 (inline imports) 等高級功能,這些拓展令 CSS 更加強大與優雅。使用 Sass 以及 Sass 的樣式庫(如 Compasss)有助於更好地組織管理樣式文件,以及更高效地開發項目。

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

我相信,在大家的心中會與這麼一個疑問,css真的是屬於我們程序猿的語言嗎?因為它不需要邏輯,只需要像寫作文一樣就可以將一個靜態頁面給“寫”出來。而且,在平時的css編譯中,我想大家最在意的就是樣式的權重吧。簡單的樣式還好,複雜樣式那從根目錄開始的辣末長的選擇器真心讓人不忍直視。所以,為了照顧我們程序猿那麼懶得生物,大神們編譯了SCSS和LESS。他們最大的優勢就是可以將css進行類似於邏輯編譯。

前言

首先,小編給大家解釋一下什麼是SCSS和LESS,Sass 是一款強化 CSS 的輔助工具,它在 CSS 語法的基礎上增加了變量 (variables)、嵌套 (nested rules)、混合 (mixins)、導入 (inline imports) 等高級功能,這些拓展令 CSS 更加強大與優雅。使用 Sass 以及 Sass 的樣式庫(如 Compasss)有助於更好地組織管理樣式文件,以及更高效地開發項目。

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

我相信,在大家的心中會與這麼一個疑問,css真的是屬於我們程序猿的語言嗎?因為它不需要邏輯,只需要像寫作文一樣就可以將一個靜態頁面給“寫”出來。而且,在平時的css編譯中,我想大家最在意的就是樣式的權重吧。簡單的樣式還好,複雜樣式那從根目錄開始的辣末長的選擇器真心讓人不忍直視。所以,為了照顧我們程序猿那麼懶得生物,大神們編譯了SCSS和LESS。他們最大的優勢就是可以將css進行類似於邏輯編譯。

前言

首先,小編給大家解釋一下什麼是SCSS和LESS,Sass 是一款強化 CSS 的輔助工具,它在 CSS 語法的基礎上增加了變量 (variables)、嵌套 (nested rules)、混合 (mixins)、導入 (inline imports) 等高級功能,這些拓展令 CSS 更加強大與優雅。使用 Sass 以及 Sass 的樣式庫(如 Compasss)有助於更好地組織管理樣式文件,以及更高效地開發項目。

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

我相信,在大家的心中會與這麼一個疑問,css真的是屬於我們程序猿的語言嗎?因為它不需要邏輯,只需要像寫作文一樣就可以將一個靜態頁面給“寫”出來。而且,在平時的css編譯中,我想大家最在意的就是樣式的權重吧。簡單的樣式還好,複雜樣式那從根目錄開始的辣末長的選擇器真心讓人不忍直視。所以,為了照顧我們程序猿那麼懶得生物,大神們編譯了SCSS和LESS。他們最大的優勢就是可以將css進行類似於邏輯編譯。


一、最常用的輔助工具——scss

雖然SASS和LESS同樣為css輔助工具,但是大部分都比較喜歡使用SASS,想要知道原因,讓小編給你解釋!

1.1SCSS基本語法

1、scss中的變量

聲明變量:$變量名:變量值;

而且,在SCSS中,允許將變量嵌套在字符串中,但是變量必須使用 ${} 包裹

1.1SCSS基本語法雖然SASS和LESS同樣為css輔助工具,但是大部分都比較喜歡使用SASS,想要知道原因,讓小編給你解釋!

1、scss中的變量

聲明變量:$變量名:變量值;

而且,在SCSS中,允許將變量嵌套在字符串中,但是變量必須使用 ${} 包裹


1.1SCSS基本語法雖然SASS和LESS同樣為css輔助工具,但是大部分都比較喜歡使用SASS,想要知道原因,讓小編給你解釋!

1、scss中的變量

聲明變量:$變量名:變量值;

而且,在SCSS中,允許將變量嵌套在字符串中,但是變量必須使用 ${} 包裹

最好用的css輔助工具——SASS&LESS

看到聲明變量的$符,是不是覺得很熟悉?沒錯!jQuery中的獲取節點使用的也是$。所以在大部分的網頁編譯中,大部分都使用scss,便是為了編譯時更舒服。不會有使用兩種語言的感覺。

2、scss中的運算,會將單位進行運算,使用時需注意最終的單位是否正確。

eg:10px * 10px =100 px*px;

3、scss中的嵌套:選擇器嵌套 屬性嵌套 偽類嵌套

在scss的使用中,我們通常把選擇器嵌套和偽類嵌套一起使用。因為這會極大地節省scss的代碼量;

①選擇器嵌套 ul{li{}}

嵌套默認表示後代選擇器,如果需要子代選擇器,可以在選擇器前加>;可以在選擇器的{}中,使用&表示上一層的選擇器。

②偽類嵌套: li{&:hover{}}

在選擇器的{}中,使用&配合偽類事件,可以表示當前選擇器的偽類。

最好用的css輔助工具——SASS&LESS

③ 屬性嵌套: font:{size:18px;}

對於屬性名有-分割為多段的屬性,可以使用屬性嵌套,屬性名的前半部分必須緊跟一個:才能用{}包裹屬性的後半部分。

最好用的css輔助工具——SASS&LESS

屬性嵌套類似於聲明一的對象;對象名為屬性名-以前的名字;對象裡面的鍵名為-以後的屬性名;值為想要設置的值;

4、註釋

//註釋一:編譯時不會被編譯到css文件中

/*

註釋二:在非compressed壓縮模式下,會被編譯到css文件中。

* */

/*!

註釋三:重要註釋。在各種壓縮模式下,都會被編譯到css文件中

* */

1.2混合宏、繼承、佔位符

1、混合宏:使用@mixin聲明混合宏,在其他選擇器中使用@include調用混合宏。

混合宏有三種方式;

第一種方式:無參數;

@mixin hunhe{} .class{@include hunhe;}

最好用的css輔助工具——SASS&LESS

第二種方式:有參數無默認值;

@mixin hunhe(@param){} .class{@include hunhe(value);}

最好用的css輔助工具——SASS&LESS

第三種:有參數有默認值;

@mixin hunhe(@param:value){} .class{@include hunhe();}

最好用的css輔助工具——SASS&LESS

優缺點:

優點:①可以傳參 ②不會產生同名的class

缺點:調用時,會把混合宏中所有的代碼copy到選擇器中,產生大量重複代碼

2、繼承:聲明一個普通class,在其他選擇器中使用@extend繼承這個class;

.class{ } .class{ @extend.class1;}

最好用的css輔助工具——SASS&LESS

優缺點:

優點:將相同代碼,提取並集選擇器,減少冗餘代碼;

缺點:①不能傳參;②會產生出一個多餘的class;

3、佔位符:使用%聲明佔位符,在其他選擇器中使用@extend 繼承佔位符;

%class1{} .class1{@extend %class1;}

最好用的css輔助工具——SASS&LESS

優缺點:

優點:①將相同代碼,提取到並集選擇器,減少冗餘代碼;②不會生出一個多餘的代碼

缺點:不能傳參

1.3條件語句、循環、函數

scss作為css的輔助工具,賦予了css類似於js的一些功能,例如循環、if條件語句、函數等;其中,一定要記得@符號的使用!!!

1、if條件結構:

條件結構需要卸載選擇器裡面,條件結構的大括號直接包裹樣式屬性。

@if 條件{}

@else{}

最好用的css輔助工具——SASS&LESS

2、for循環:有著兩種方式,類似於開區間和閉區間;

@for $i from 1 to 10{} //不包含10

@for $i from 1 through 10{} //包含10

最好用的css輔助工具——SASS&LESS

3、while循環;

先使用$符定義一個變量,然後進行條件判斷,在{}中進行循環;

最好用的css輔助工具——SASS&LESS

4、each 循環遍歷

@each $item in a,b,c,d{

//$item 表示a,b,c,d的每一項

}

最好用的css輔助工具——SASS&LESS

5、函數

scss也可以想js一樣進行函數的調用;

最好用的css輔助工具——SASS&LESS


二、Less

less作為和scss同等地位的css輔助工具,在一些方面有著相同點,另一方面也有這他的優點;

2.1less基本語法

1、聲明變量:@變量名:變量值

使用變量:@變量名

相對於scss,less變量的聲明使用@符號;並且,變量一般使用在多次頻繁出現的值,後期需要統一修改的值,牽扯到數值運算的值,推薦使用變量

>>>less中的變量類型

在css中出現的屬性值,在less中都可以用作變量名

①數值類: 不帶單位的 123 帶單位的 1px

②字符串:帶引號的 "hahahaah" 不帶引號的 red #ff0000

③顏色類: red #ff0000 RGB(255,255,0)

④值列表類型: 多個值用逗號或空格分隔 10px solid red

最好用的css輔助工具——SASS&LESS

2、混合(Mixins),我們也親切的叫做“米心”;相當scss的混合宏,同樣有著三種方式:

①無參數混合;實際上就是一個普通的class選擇器,會被編譯到css文件中;

聲明: .class{}

調用:在選擇器中,使用.class;直接調用

最好用的css輔助工具——SASS&LESS

②有參無默認值混合:

聲明:.class(@param){}

調用:.class(paramValue);

最好用的css輔助工具——SASS&LESS

③有參有默認值混合:

聲明:.class(@param:10px){}

調用:.class(paramValue); 或 .class();

最好用的css輔助工具——SASS&LESS

>>>如果聲明時沒有給參數賦默認值,則調用時必須賦值,否則報錯;

有參混合,在編譯時,不會出現在css文件中;

2.2匹配、@argument、嵌套

1、LeSS的匹配默認

①聲明,類似於switch語句;

@pipei(條件一,參數){} @pipei(條件二,參數){} @pipei(@_,參數){}

②調用:

@pipei(條件的值,參數的值){}

③匹配規則:

根據調用時輸入的條件值,去尋找與之匹配的混合執行;

最好用的css輔助工具——SASS&LESS

2、@arguments 特殊變量:

在混合中,@arguments表示混合傳入的所有參數。@arguments中的多個參數,用空格分隔。

最好用的css輔助工具——SASS&LESS

4、Less嵌套

less中允許css選擇器按照HTML的結構進行嵌套。 相當於scss的選擇器嵌套與偽類嵌套的組合;

最好用的css輔助工具——SASS&LESS

有兩點值得注意;

①less的嵌套,默認是後代選擇器。如果需要自帶選擇器,需要在前面加>;

②&符號,表示這個&所在的上一層表達器;比如上述嵌套:&:hover相當於section ul:hover

三、less&scss的使用

作為css的輔助工具,需要其操作環境最終還要轉為css才能實現網頁的佈局;使用less直接創建Less文件就可以了嗎?不,我們通常使用Koala進行less或scss到css的轉換;

將less或scss的文件夾拖進koala的主頁中,就可以隨心所欲的編譯了!!

最好用的css輔助工具——SASS&LESS


對於一些簡單的 項目,使用不使用scss和less並無區別,可在一些難度較大、比較複雜的項目上,less或scss就很有必要了。既節省我們的時間,有提高效率,一舉多得!!!

文章來自博客園

找工作難?那是你沒選對行業!

2017年【中公教育】特別推出2017年就業促進計劃,500萬就業基金助你成為IT達人

詳情請戳://www.ujiuye.com/zt/jycj/?wt.bd=zy35844tt

什麼?海量IT學習資料白給你都不要?別想了,加群搶:499754614

相關推薦

推薦中...