CSS中的預(yù)編譯語(yǔ)言less和sass

web.jpeg

1.less

  • Less 是一門(mén) CSS 預(yù)處理語(yǔ)言,使用了類(lèi)似CSS的語(yǔ)法剥险,為CSS賦予了動(dòng)態(tài)語(yǔ)言的特征。它擴(kuò)展了 CSS 語(yǔ)言宪肖,增加了變量表制、Mixin(混合)、嵌套控乾、函數(shù)和運(yùn)算等特性么介,使 CSS 更易維護(hù)和擴(kuò)展。此外蜕衡,Less 可以運(yùn)行在 Node 或?yàn)g覽器端壤短。

less語(yǔ)法

1.變量 在less文件中聲明定義
//定義變量

//格式: @變量名稱(chēng): 對(duì)應(yīng)的value

@color:#E9232C;
@fs:16px;
@navH:70;
@w:200px;
@h:50px;

//使用
div,p{
  width: @w;
  height: @h;
  background: @color;
}

注意:一般一些公用的變量,比如寬度慨仿,顏色等 單獨(dú) 抽取一個(gè)less文件
入一下例子

一個(gè)基礎(chǔ)的公用的less文件 名稱(chēng)為base.less文件 內(nèi)容如下:

//定義變量

@color:#E9232C;
@fs:16px;
@navH:70;
@w:200px;
@h:50px;

在另一個(gè)index.less文件中使用

//導(dǎo)入模塊
@import "base.less";

div,p{
  width: @w;
  height: @h;
  background: @color;
}

@ import "xxx" 在less文件中 引入另外一個(gè)less文件

2.標(biāo)簽嵌套 使用
//1.定義變量
@color:red;
@width:50px;
@height:50px;
@bgColor:green;

//2.嵌套
//父親盒子
.box{
  width: @width*3;
  height: @height*3;
  background-color:@bgColor;
  
  //子盒子
  .test1{
    width: @width + 20px;
    height: @height + 20px;
    background-color: white;
      //子子盒子
      .test3{
         background-color: @color;
        
      }
  }
}

3. 運(yùn)算

注意:運(yùn)算符與值之間必須以空格分開(kāi) ; 在運(yùn)算的時(shí)候鸽扁,只要有一個(gè)有單位就行


@width:300px;
@height:100px;
@color1:red;
@color2:green;
div{
  //width: @width - 100;//可以
  //width: @width - 200px ;//可以
  //width: @width * 2;//可以
  //width: @width * 3px;//可以
  width: 500 - @width; //可以
  height: @height;
  background-color: red;
  //background-color: @color1 + @color2; // 可以
  //background-color: @color1 + 15; // 可以
  //background-color: @color1 + yellow; // 不可以
}

4.混合-函數(shù)

  • 格式 .fn(){} fn是名稱(chēng)
@width:300px;
@height:100px;
@color:green;

//混合:無(wú)參數(shù)
// 類(lèi)似JS中的函數(shù)
// 格式  .fn(){}
.createRadius1(){
    border-radius: 30px;
}
//混合:有參數(shù)
.createRadius2(@Radius:50px,@border:3px solid yellow){
    border-radius: @Radius;
    border: @border;
}

div{
  width: 500 - @width; //可以
  height: @height;
  background-color: red;
  //引用
  .createRadius1();
}
p{
  width: @width *2 ;
  height: @height *2 ;
  background-color: blue;
  //引用
  .createRadius2(30px,5px solid blue);
}

2. Sass預(yù)處理器

SASS是一套利用Ruby實(shí)現(xiàn)的, 最早最成熟的CSS預(yù)處理器,它和Less一樣也是 一門(mén) CSS 預(yù)處理語(yǔ)言镶骗,它擴(kuò)展了 CSS 語(yǔ)言,增加了變量躲雅、Mixin(混合)鼎姊、嵌套、函數(shù)和運(yùn)算等特性,使 CSS 更易維護(hù)相寇。

注意: SASS以.sass或者.scss結(jié)尾

.sass結(jié)尾以縮進(jìn)替代{}表示層級(jí)結(jié)構(gòu), 語(yǔ)句后面不用編寫(xiě)分號(hào);

.scss以{}表示層級(jí)結(jié)構(gòu), 語(yǔ)句后面需要寫(xiě)分號(hào);(推薦使用這個(gè))

2.1變量

Sass中定義變量的格式: $變量名:對(duì)應(yīng)的vlue

  1. 后定義的 變量會(huì)覆蓋前面的同名變量

  2. SASS中變量不是延遲加載, 不可以先使用后定義

//定義變量
$width:200px;
$height:300px;

//使用
.box{
    width:$width;
    height:$height;
    background: red;
}

變量插值
格式: #{變量名}


//定義變量
$size: 200px;
$w: width;

div{
     #{$w}: $size;
  height: $size;
  background: red;
}


2.2混合

格式: @mixin 名稱(chēng)(){}

使用:@include 名稱(chēng)

  • 沒(méi)有參數(shù)
//定義混合
@mixin center(){
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}


.father{
  width: 300px;
  height: 300px;
  background: red;
  //使用
  @include center();
  .son{
    width: 200px;
    height: 200px;
    background: blue;
    //使用
    @include center();
  }
}

  • 帶參數(shù)

    可以有默認(rèn)值

     //定義混合
     // $w:默認(rèn)值是100px
     
    @mixin whc($w: 100px, $h: 100px, $c: #000){
      width: $w;
      height: $h;
      background: $c;
    }
    
    // 寬度慰于、高度使用默認(rèn)值的時(shí)候,顏色不用唤衫,必須帶上 **形式參數(shù)** 
    .box2{
      @include whc($c: blue);
    }
    
    
    .box1{
      @include whc(300px, 300px, red);
    }
    
    
  • 可變函數(shù) 和 less一樣

    //定義混合
    @mixin animate($name, $time, $args...){
      transition: $name $time $args;
    }
    
    //使用
    div{
      width: 200px;
      height: 200px;
      background: red;
      //transition: all 4s linear 0s;
      //使用
      @include animate(all, 4s, linear, 0s);
    }
    

2.3引入其他sass文件

//引入其他婆赠,scss文件,后綴名可加佳励,可不加
@import "search.scss";


2.4函數(shù)

  • 自定義函數(shù)

    格式:@function 函數(shù)名(形式參數(shù)){函數(shù)體}

 //定義函數(shù)
@function sum($num){
    //返回值
    //注意:格式 @return
   @return $num + $num +"px";
}

div{
    //使用
  width: sum(2);
  height: 200px;
 
}


  • 內(nèi)置函數(shù)

    內(nèi)置函數(shù)休里,執(zhí)行使用就行了

2.5嵌套結(jié)構(gòu)

子級(jí)盒子嵌套使用在父級(jí)盒子里面

.father{
  width: 300px;
  height: 300px;
  background: red;
  //使用拼接
  &:hover{
    width: 100px;
    height: 100px;
    background: yellow;
  }
  //嵌套
  .son{
    width: 200px;
    height: 200px;
    background: blue;
  }
}

2.6繼承

格式:@extend .xxx 其中xxx是要繼承的類(lèi)

//定義
.center{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}


.father{
//繼承
  @extend .center;
  width: 300px;
  height: 300px;
  background: red;
  
  .son{
    @extend .center;
    width: 200px;
    height: 200px;
    background: blue;
   
  }
}

2.7 Sass中的條件判讀和循環(huán)

  • 條件判斷

    在sass中可以直接,使用 if(){}elseif()

 //定義一個(gè)混合
 
 @mixin triangle($dir, $width, $color){
  width: 0;
  height: 0;
  border-width: $width;
  border-style: solid solid solid solid;
  //條件判斷
  @if($dir == Up){
    border-color: transparent transparent $color transparent;
  }@else if($dir == Down){
    border-color: $color transparent transparent transparent;
  }@else if($dir == Left){
    border-color: transparent $color transparent transparent;
  }@else if($dir == Right){
    border-color: transparent transparent transparent $color;
  }
}



div{
    //使用混合
  @include triangle(Left, 50px, blue);
}

  • 循環(huán)

    @for $i from 起始整數(shù) through 結(jié)束整數(shù){}

    @for $i from 起始整數(shù) to 結(jié)束整數(shù){}
    兩者的區(qū)別 through包頭包尾, to包頭不包尾

ul{
  li{
    width: 100%;
    height: 50px;
    border: 1px solid #000;
    font-size: 20px;
    color: #fff;
    background: red;
   
    //@for $i from 5 through 8{
    //@for $i from 5 to 8{
    $i:5;
    @while($i <= 8){
      &:nth-child(#{$i}){
        background: deepskyblue;
      }
      $i:$i+1;
    }
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赃承,一起剝皮案震驚了整個(gè)濱河市妙黍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瞧剖,老刑警劉巖拭嫁,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異抓于,居然都是意外死亡做粤,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)捉撮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)怕品,“玉大人,你說(shuō)我怎么就攤上這事呕缭《略螅” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵恢总,是天一觀的道長(zhǎng)迎罗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)片仿,這世上最難降的妖魔是什么纹安? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮砂豌,結(jié)果婚禮上厢岂,老公的妹妹穿的比我還像新娘。我一直安慰自己阳距,他們只是感情好塔粒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著筐摘,像睡著了一般卒茬。 火紅的嫁衣襯著肌膚如雪船老。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,258評(píng)論 1 300
  • 那天圃酵,我揣著相機(jī)與錄音柳畔,去河邊找鬼。 笑死郭赐,一個(gè)胖子當(dāng)著我的面吹牛薪韩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捌锭,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼俘陷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了舀锨?” 一聲冷哼從身側(cè)響起岭洲,我...
    開(kāi)封第一講書(shū)人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎坎匿,沒(méi)想到半個(gè)月后盾剩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡替蔬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年告私,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片承桥。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驻粟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凶异,到底是詐尸還是另有隱情蜀撑,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布剩彬,位于F島的核電站酷麦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏喉恋。R本人自食惡果不足惜沃饶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望轻黑。 院中可真熱鬧糊肤,春花似錦、人聲如沸氓鄙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)抖拦。三九已至把介,卻和暖如春勤讽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拗踢。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留向臀,地道東北人巢墅。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像券膀,于是被迫代替她去往敵國(guó)和親君纫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容