Sass的基本用法

CSS的預(yù)處理

CSS預(yù)處理器用一種專門的編程語言,進(jìn)行Web頁面樣式設(shè)計(jì),然后再編譯成正常的CSS文件,以供項(xiàng)目使用。為CSS增加一些編程的特性,無需考慮瀏覽器的兼容性問題,例如你可以在CSS中使用變量、簡單的邏輯程序、函數(shù)等等在編程語言中的一些基本特性,可以讓你的CSS更加簡潔、適應(yīng)性更強(qiáng)、可讀性更佳,更易于代碼的維護(hù)等諸多好處。

  • Sass是世界上最成熟、最穩(wěn)定、最強(qiáng)大的專業(yè)級(jí)CSS擴(kuò)展語言!
  • Sass (Syntactically Awesome StyleSheets)
  • Sass可以讓你的CSS更加簡潔、適應(yīng)性更強(qiáng)、可讀性更佳,更易于代碼的維護(hù)

基本語法

  • 變量聲明
  • 默認(rèn)變量
  • 全局變量與局部變量(使用 $ 定義變量,: 后面是變量值)
//最外層定義的是全局變量
$color:orange;
$color:blue !default;  //默認(rèn)變量
.block {
        color:$color;  //調(diào)用全局變量
}
em {
      $color:red;   //定義局部變量
      a  {
           color:$color;   //調(diào)用局部變量
      }
}
  • 數(shù)字 number:
    如,1、 .2、 13%、 10px
  • 字符串 string:
    有引號(hào)字符串或無引號(hào)字符串,如,"foo"、 'bar'、 baz
  • 顏色 color:
    如,blue、 #04a3f9、rgb(255,0,0)、 rgba(255,0,0,0.5)
  • 布爾型 bool:
    如,true、 false
  • 空值 null:
    如,null
  • 值列表 list:
    用空格或者逗號(hào)分開,如,1.5em 1em、 Helvetica, Arial

注釋

//,不會(huì)輸出到結(jié)果
/.../,輸出到未壓縮的結(jié)果
/!.../,輸出到任意結(jié)果

嵌套 (Nesting)

  • 選擇器嵌套
  • 屬性嵌套
  • 偽類嵌套
  • 引用父級(jí)選擇器 &
  • 直接子元素嵌套 >
.wrap {
      border:  {   //屬性嵌套
          top:1px solid red;
          bottom: 1px solid green;     
      };
      a {   //選擇器嵌套
             //偽類嵌套
             &:hover {   //&表示父組選擇器
                    background-color: #f00;
              }
      }  
      >.box {     //直接子元素嵌套
          color:#286090;
      }  
}

繼承(Inheritance)與擴(kuò)展(Extend)

  • btn-primary繼承自.btn類,使用@extend來繼承已存在的類樣式塊
.btn {
        border:1px solid #ccc;
        padding:6px 10px;
        font-size:14px;
}
.btn-primary {
        background-color:#f36;
        color:#fff;
        @extend .btn;
}

占位符(placeholder)

  • 定義占位符:%占位符名(只有通過@extend調(diào)用占位符時(shí)才會(huì)產(chǎn)生代碼)
%mt5 {
        margin-top:5px;
}
%pt5 {
         padding-top:5px;
}
.btn {
          @extend  %mt5;
          @extend  %pt5;
}

混合宏(Mixin)

  • 聲明混合宏 @mixin 混合宏名([參數(shù)])
  • 調(diào)用混合宏 @include 混合宏名([參數(shù)])
//定義一個(gè)帶參數(shù)的混合宏
@mixin border-radius($radius:5px){
    -webkit-border-radius:$radius;
    border-radius:$radius;
}
button {
    @include border-radius;
}

混合宏、繼承、占位符區(qū)別

1.png

插值(Interpolation)

  • 語法:#{$變量名},生成css時(shí),插值會(huì)被變量值代替
2.png
  • 不可在@include 混合宏時(shí)使用插值
3.png
  • 可在@extend時(shí)使用插值
4.png

導(dǎo)入(Import)

  • 這些情況與css中的@import一樣
5.png

操作符(Operators)

加法 +
減法 -
乘法 *
除法 /
取余 %

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

  • Introspection函數(shù)

type-of($value):返回一個(gè)值的類型
unit($number):返回一個(gè)值的單位
unitless($number):判斷一個(gè)值是否不帶單位
comparable($number-1, $number-2):判斷兩個(gè)值是否可以做加、減和合并

  • Miscellaneous函數(shù)(三元函數(shù))

if($condition,$if-true,$if-false)

數(shù)字函數(shù)

  • percentage($value):將一個(gè)不帶單位的數(shù)轉(zhuǎn)換成百分比值;
  • round($value):將數(shù)值四舍五入,轉(zhuǎn)換成一個(gè)最接近的整數(shù);
  • ceil($value):將大于自己的小數(shù)轉(zhuǎn)換成下一位整數(shù);
  • floor($value):將一個(gè)數(shù)去除他的小數(shù)部分;
  • abs($value):返回一個(gè)數(shù)的絕對值;
  • min($numbers…):找出幾個(gè)數(shù)值之間的最小值;
  • max($numbers…):找出幾個(gè)數(shù)值之間的最大值;
  • random(): 獲取隨機(jī)數(shù)

列表函數(shù)

  • length($list):返回一個(gè)列表的長度值;
  • nth($list, $n):返回一個(gè)列表中指定的某個(gè)標(biāo)簽值
  • join($list1, $list2, [$separator]):將兩個(gè)列給連接在一起,變成一個(gè)列表;
  • append($list1, $val, [$separator]):將某個(gè)值放在列表的最后;
  • zip($lists…):將幾個(gè)列表結(jié)合成一個(gè)多維的列表;
  • index($list, $value):返回一個(gè)值在列表中的位置值。

常用指令

@media
@if
@at-root

媒體查詢(Mediaqueries)

6.png

顏色函數(shù)-RGB顏色函數(shù)

  • rgb($red,$green,$blue):根據(jù)紅、綠、藍(lán)三個(gè)值創(chuàng)建一個(gè)顏色;
  • rgba($red,$green,$blue,$alpha):根據(jù)紅、綠、藍(lán)和透明度值創(chuàng)建一個(gè)顏色;
  • red($color):從一個(gè)顏色中獲取其中紅色值;
  • green($color):從一個(gè)顏色中獲取其中綠色值;
  • blue($color):從一個(gè)顏色中獲取其中藍(lán)色值;
  • mix($color-1,$color-2,[$weight]):把兩種顏色混合在一起。

顏色函數(shù)-HSL顏色函數(shù)

  • hsl($hue,$saturation,$lightness):通過色相(hue)、飽和度(saturation)和亮度(lightness)的值創(chuàng)建一個(gè)顏色;
  • hsla($hue,$saturation,$lightness,$alpha):通過色相(hue)、飽和度(saturation)、亮度(lightness)和透明(alpha)的值創(chuàng)建一個(gè)顏色;
  • hue($color):從一個(gè)顏色中獲取色相(hue)值;
  • saturation($color):從一個(gè)顏色中獲取飽和度(saturation)值;
  • lightness($color):從一個(gè)顏色中獲取亮度(lightness)值;

Maps的函數(shù)

  • map-get($map,$key):根據(jù)給定的 key 值,返回 map 中相關(guān)的值。
  • map-merge($map1,$map2):將兩個(gè) map 合并成一個(gè)新的 map。
  • map-remove($map,$key):從 map 中刪除一個(gè) key,返回一個(gè)新 map。
  • map-keys($map):返回 map 中所有的 key。
  • map-values($map):返回 map 中所有的 value。
  • map-has-key($map,$key):根據(jù)給定的 key 值判斷 map 是否有對應(yīng)的 value 值,如果有返回 true,否則返回 false。
  • keywords($args):返回一個(gè)函數(shù)的參數(shù),這個(gè)參數(shù)可以動(dòng)態(tài)的設(shè)置 key 和 value。

指令(Directives)

@for
@each
@while
@function
@debug
@warn
@error

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • -------------------------一、控制指令--------------------------...
    夜幕小草閱讀 3,235評論 0 5
  • 基礎(chǔ) 聲明變量 普通變量 默認(rèn)變量 變量覆蓋:只需要在默認(rèn)變量之前重新聲明下變量即可 變量的調(diào)用 局部變量和全局變...
    Jill1231閱讀 1,385評論 0 1
  • ** 如果書寫 CSS 讓你感到十分痛苦,那么一定要試一試 Sass!** 首先參考 Sass 十分鐘入門接下來會(huì)...
    Yi罐可樂閱讀 1,017評論 3 11
  • sass的語法格式 sass有兩種語法格式: sass語法格式(老版本sass語法格式) 文件后綴名為.sass ...
    luichooy閱讀 530評論 0 0
  • 本文簡單的介紹SASS預(yù)處理語言,更多的應(yīng)用請參考官方文檔 一、什么是SASS 二、為什么使用SASS 三、安裝S...
    CharlesDarwin閱讀 546評論 0 0

友情鏈接更多精彩內(nèi)容