1. 程式人生 > >sass學習、sass語法、sass函式、編輯工具koala

sass學習、sass語法、sass函式、編輯工具koala

sass學習

一、sass與scss的區別:

sass定義

sass是一種基於css的預處理語言,在css的基礎上進行簡化,sass可以定義變數、巢狀、擴充套件、條件判斷、迴圈等功能。

sass目前有兩種語法規則:sass、scss。

1) 第一種語法規則sass,又被稱為縮排語法,該種語法不使用大括號、分號,而是通過縮排來指定塊。副檔名為.sass
2) 第二中語法為scss,該語法與我們平時的css語法差不多,使用大括號、分號。scss是sass3引入新的語法,該語法完全相容css3,並且繼承了sass的強大功能,另外還能識別大部分css hacks和特定於瀏覽器的語法(這真是太好不過了)。副檔名為.scss

scss更和平常css寫法類似,平常一般用scss作為字尾

二、sass語法

1.匯入:@import

sass的匯入規則與css有所不同。

2.註釋

1)多行註釋:/**/
2)當行註釋://
css只有一種註釋方式://

3.變數

1)普通變數:ex:$var:#ccc;

$colorPra: 12px;
body{
    font-size:$colorPra;
}

2)預設變數:ex: $var: 1.5 !default;【用來設定預設值】

$heightH1:        1.5 !default;
body{
    line-height: $heightH1; 
}

預設變數設定預設值,根據需求覆蓋

$baseLineHeight:        2;
$baseLineHeight:        1.5 !default;
body{
    line-height: $baseLineHeight; 
}

3)特殊變數
該類變數可以設定 屬性 或在某些特殊情況下使用。

$borderDirection:       top !default; 
$baseFontSize:          12px !default;
$baseLineHeight:        1.5 !default;
.border-#{$borderDirection}{
  border-#{$borderDirection}:1px solid #ccc;
}
//應用於複雜的屬性值
body{
    font:#{$baseFontSize}/#{$baseLineHeight};
}

4)多值變數:list ,map

$pxA:500px 200px 300px ;//一維陣列
$borderM:(1px solid #ccc),(2px dashed #000);  //二維陣列
.aa{
    width:nth($pxA,1);
    height:nth($pxA,3);
    border:nth($borderM,1)
}
.bb{
 border:nth($borderM,2);
}

5)全域性變數:!global

4.巢狀

1)選擇器巢狀
2)屬性巢狀
3)跳出巢狀:@at-root
@at-root (without: all/rule(預設值)/media/support)
@at-root (with: …)

5.混合:@mixin @include

1)無引數:

@mixin center-block {
    margin-left:auto;
    margin-right:auto;
}
.demo{
    @include center-block;
}

2)有引數

@mixin opacity($opacity:50) {
  opacity: $opacity / 100;
  filter: alpha(opacity=$opacity);
}

等同於

.opacity{
  @include opacity; //引數使用預設值
}
.opacity-80{
  @include opacity(80); //傳遞引數
}

3)多個引數

@mixin horizontal-line($border:1px dashed #ccc, $padding:10px){
    border-bottom:$border;
    padding-top:$padding;
    padding-bottom:$padding;  
}
.imgtext-h li{
    @include horizontal-line(1px solid #ccc);
}
.imgtext-h--product li{
    @include horizontal-line($padding:15px);
}

等同於

.imgtext-h li {
    border-bottom: 1px solid #cccccc;
    padding-top: 10px;
    padding-bottom: 10px;
}
.imgtext-h--product li {
    border-bottom: 1px dashed #cccccc;
    padding-top: 15px;
    padding-bottom: 15px;
}

[email protected]

7.繼承:@extend

h1{
  border: 4px solid #ff9aa9;
}
.speaker{
  @extend h1;
  border-width: 2px;
}

8.佔位選擇器: %

9.函式

在sass中有已經定義好的函式使用,比如我們經常使用的顏色函式:lighten(color,amount)和darken(color,amount),但是我們也可以自己定義自己需要的函式。

$fontSizeDefault:      16px !default;
$gray:              #000 !defualt;        

@function pxTorem($px) {
  @return $px / $fontSizeDefault* 1rem;  //將畫素px轉化為rem值
}

.aa{
  font-size:pxTorem(30px);
  background:$gray;
  &:hover{
     background:lighten($gray,10%);  //顏色函式計算
  }
}

10.運算:+- * /

進行運算的只能是可以進行 + = /* 的數值型屬性(ex:數字、顏色、變數等),在進行運算的時候需要在運算子前後空格,否則會出錯。

$pxA:500px 200px 300px ;//一維陣列
.tt{
    color:#fff;
    width:1200px - nth($pxA,1); //進行-運算
}

11.條件判斷及迴圈

1)@if 或者 @if @else if @else判斷

$ifTrue :true;   //true false 在sass 可作為判斷條件
.ab{
    @if $ifTrue{
        display:inline-block;
    }
}

結果為:

.ab {
  display: inline-block;
}

注:當$ifTrue 值為false 時,.ab類中的display是沒有的。

2)三目判斷
3)for迴圈
4)@each迴圈
5)多個欄位list、map資料迴圈

四、函式統計

很多函式平常是用不上的,但是這裡羅列出一些函式,方便以後使用

序號 函式類別 函式 註釋
1 控制命令 @if
2 控制命令 @for
3 控制命令 @while
4 控制命令 @each
5 控制命令 @for
6 字串函式 unquote()
7 字串函式 quote()
8 字串函式 To-upper-case()、To-lower-case()
9 數字函式 percentage()
10 數字函式 round()
11 數字函式 ceil()
12 數字函式 floor()
13 數字函式 abs()
14 數字函式 min()、max()
15 數字函式 random()
16 列表函式 length()
17 列表函式 nth()
18 列表函式 join()
19 列表函式 append()
20 列表函式 zip()
21 列表函式 index()
22 列表函式 Introspection函式
23 列表函式 unit()
24 列表函式 unitless()
25 列表函式 comparable()
26 列表函式 Miscellaneous函式
27 列表函式 Map函式
28 列表函式 Maps函式:map-get($map,$key)、map-values($map)、map-merge($map1,$map2)
29 列表函式 Map函式map-has-key($map,$key)、map-keys($map)
30 列表函式 Map函式map-remove($map,$key)、keywords($args)
31 顏色函式 RGB()
32 顏色函式 RGBA()
33 顏色函式 Red()、Green()、Blue()
34 顏色函式 Mix()
35 HSL函式 lighten()
36 HSL函式 saturate()
37 HSL函式 adjust-hue()
38 HSL函式 grayscale()
39 Opacity函式 alpha()、opacity()
40 Opacity函式 rgba()
41 Opacity函式 opacify()、fade-out()

@規則:

序號
1 @import
2 @media
3 @extend
4 @at-root
5 @debug
6 @warn
7 @error

五、工欲善其事必先利其器,sass編輯工具koala

這裡寫圖片描述

koala用起來非常方便,在專案中使用sass時,該軟體配合SublimeText使用,將scss檔案自動編為css檔案。

附上sass地址,保留地址,方便以後檢視。

http://www.w3cplus.com/sassguide/

http://www.sass.hk/docs/

相關推薦

sass學習sass語法sass函式編輯工具koala

sass學習 一、sass與scss的區別: sass定義 sass是一種基於css的預處理語言,在css的基礎上進行簡化,sass可以定義變數、巢狀、擴充套件、條件判斷、迴圈等功能。 sass目前有兩種語法規則:sass、scss。 1)

ES6語法筆記(函式陣列物件)

**以下內容均摘自ECMAScript 6 入門——阮一峰 一、函式 1.函式的預設值與解構賦值 function foo({x, y = 5}) { console.log(x, y); } foo({}) // undefined 5 foo({x: 1}) // 1 5 foo({x:

typescript學習之旅----資料型別及函式傳參過載等

typescript中為了使編寫的程式碼更規範,更有利於維護,增加了型別校驗,在typescript中主要給我們提供了以下資料型別         布林型別(boolean)         數字型別(number)         字串型別(string)      

【資料庫視訊】事務系統與原資料函式BEGIN…END

一、事務 管理語句: BEGIN  TRANSACTION(開啟) COMMIT  TRANSACTION(提交) ROLLBACK  TRANSACTION(回滾) SAVE  TRANSACTION(儲存)

java 簡介JDK安裝Hello World體驗java語法(標示符關鍵字)變數運算子

1、java介紹: Java的發展可以歸納如下的幾個階段: ---------------第一階段(完善期)1995-1998 ---------------第二階段(平穩期):JDK 1.3一JDK 1.4; ---------------第三階段(發展期):JDK1.52005年推出-----JDK

第四章 php函式(自定義函式變數範圍引數傳遞,可變函式遞迴函式內建函式)

任何有效的php程式碼都可以作為函式體使用 //例子1 function add($a,$b){ echo $a+$b; } add(10,20); //php頁面顯示30 // 例子2 function add($a,$b){ return $a+$b; //r

第6章建立函式-----------(在.bashrc檔案中定義函式在命令列建立函式在命令列中使用函式)

6.6在命令列中使用函式          指令碼函式可以用於建立比較複雜的操作。指令碼函式不僅可以用作shell指令碼命令,也可以用作命令列介面的命令。一旦在shell中定義了函式,可以從系統的任意目錄使用這個函式。不必擔心PATH環境變數是否包含函式檔案所在目錄。關鍵是

【Java-16】Java中字串表示字串一些重要操作函式整數與字串轉換

Java中有一個字串型別String,實際上確切說是有一個字串類,而類可以等價看作一個數據型別,所以我們就把String看成字串型別,String[]自然就是字串陣列,且對於每一個字串其都附帶很多方法,如字串切割等,具體看程式碼註釋解釋 package array; public class

從零開始學C++之虛擬函式與多型(一):虛擬函式表指標虛解構函式object slicing與虛擬函式C++物件模型圖

#include <iostream>using namespace std;class CObject {public:     virtual void Serialize()     {         cout << "CObject::Serialize ..." <&

子類A繼承父類B, A a = new A(); 則父類B建構函式父類B靜態程式碼塊父類B非靜態程式碼塊子類A建構函式子類A靜態程式碼塊子類A非靜態程式碼塊 執行的先後順序是?

(1)子類A繼承父類B, A a = new A(); 則: 父類B靜態程式碼塊->子類A靜態程式碼塊->父類B非靜態程式碼塊->父類B建構函式->子類A非靜態程式碼塊->子類A建構函式 (2)若子類建構函式中顯式的呼叫了父類

核心態與使用者態系統呼叫與庫函式檔案IO與標準IO緩衝區等概念介紹

概述 Linux提供了兩套可以用於檔案的IO介面: 檔案IO: open、create、close、lseek、read、write、fcntl、ioctl等 標準IO: FILE、fopen、fwrite、fread、等 為了理解檔案IO和標準I

MySQL儲存過程和自定義函式Navicat for mysql建立儲存過程和函式呼叫儲存過程和函式的區別

與你相遇 好幸運  可我已失去為你淚流滿面的權利  但願在我看不到的天際  你張開了雙翼 1 MySQL儲存過程和函式 過程和函式,它們被編譯後儲存在資料庫中,稱為永續性儲存模組(Persistent Stored Module,PSM),可以反覆呼叫,執行速度快。 1.1 儲存過程 儲存過程是由

似然函式(likelihood)最大似然函式最小二乘解

在英語語境裡,likelihood 和 probability 的日常使用是可以互換的,都表示對機會 (chance) 的同義替代。但在數學中,probability 這一指代是有嚴格的定義的,即符合柯爾莫果洛夫公理

Day40this指標和常函式解構函式物件的建立和銷燬過程拷貝構造和拷貝賦值(深拷貝淺拷貝!)

一、            this和常函式 1、 this 指標 1)     類中的建構函式和成員函式都隱藏一個該類型別的指標引數,引數名為this。 2)     對於普通的成員函式,this指標就是指向呼叫該函式的物件 3)     對於建構函式,this指標指向正

雜記 -- 關於vue-router樣式vuecli引用全域性js函式vue.slot用法

1、routerLinkTo 樣式設定 首先,點選routerlink標籤如下圖:新增:router-link-active,router-link-exact-active兩個類的樣式 router-link-active及router-link-exact-active區別: 有四種路徑如下: &l

sass學習(一):變數巢狀與匯入

一 使用變數 sass使用的一大好處就是可以使用變數,對於那些重複使用的屬性,可以通過變數名來引用。 1.變數宣告 sass中變數通過$來宣告,書寫方法與CSS相似,屬性值可以使用空格和逗號進行分割。與CSS屬性不同的是,其變數可以宣告在規則塊外,在規則塊內部宣告的變數只能

Sublime Text 3 LESSSASSSCSS高亮插件提示插件

兼容 post 安裝目錄 今天 css語法 開始 pack 打開 預處理 LESS https://github.com/danro/LESS-sublime 功能:LESS高亮插件 下載 簡介:用LESS的同學都知道,sublime沒有支持l

Sass Maps的函數-map-values($map)map-merge($map1,$map2)

c89 soc line 12px 新的 註意 merge social sas map-values($map) map-values($map) 函數類似於 map-keys($map) 功能,不同的是 map-values($map )獲取的是 $map 的所有 va

Web安全學習_PHP學習_語法變數常量函式陣列

一、語法 定界符php程式碼需要包含在<?php ?>中 <?php 程式碼段 ?> 註釋方法 <?php //單行註釋 #單行註釋 /* 多行 註釋 */ ?> 二、 變數

Python基礎學習資料(語法函式詳解)

目錄 目錄 1 常用函式 5 input() 5 int() 6 len() 7 list() 與tuple相對 8 tuple() 與list相對 9 sum() 10 max() 11 min() 12 print() 13 range() 14 set() 15 sorted() 16