1. 程式人生 > >SASS基本用法

SASS基本用法

變數($Variable)

變數以$開頭,既可以用於選擇器(Selector),也可以用於屬性(Property)和屬性值(Value)。
當用於屬性值時,通常可以直接引用;當用於選擇器、屬性和某些複雜屬性值(e.g. font-size/line-height)時,使用 #{$var} 的形式引用。

//簡單變數
$bgColor: #fefefe;
$fontSize: 14px;
$lineHeight: 1.5;
html, body {
    font: #{$fontSize}/#{lineHeight} sans-serif;
    background-color: $bgColor;
}

此處的font-size和line-height兩個屬性需要以#{$var}的形式引用,否則會被當做除法運算處理。

對於多值變數,有List和Map兩種形式,分別類似於JS中的陣列和物件,使用方式如下:

//多值變數:List形式
$margins: 5px 10px, 15px 20px;
div {
    margin: nth($margins, 1) nth($margins, 2);
    padding: nth($margins, 1);
}
//多值變數:Map形式
$headers: (h1:2em, h2:1.5em, h3:1.2em);
@each $header
, $size in $headers { #{$header} { font-size: $size; } }

巢狀(Nesting)

巢狀可以分為選擇器巢狀和屬性巢狀,使用 & 表示在巢狀中對父元素的引用。

ul {
    border: 1px solid $ul-border-color;
    li {
        border: 1px solid $li-border-color;
        a {
            text-decoration: none;
            &:hover
{ text-decoration: underline; font: { size: 1.5em; weight: bold; } } } } }

混合(Minxin)

可傳遞引數,通常與 @include 配合使用,提高程式碼複用率。

@mixin round($deg) {
    border-radius: $deg;
}
.panel {
    @include round(5px);
}

@mixin link-style($selector) {
    .list1 #{$selector} {
        color: $link-color1;
    }
    .list2 #{$selector} {
        color: $link-color2;
    }
}
@include link-style(".link");

繼承(Extend)

當某一類元素擁有大量相同屬性時,可以通過繼承來簡化程式碼,提高程式碼複用率。

.btn {
    display: inline-block;
    margin: 10px;
    padding: 5px 15px;
}
.btn-bor {
    border: 1px solid #ccc;
}
.btn-red {
    @extend .btn;
    @extend .btn-bor;
    border-color: red;
}

另外,繼承可以與佔位選擇器(%foo)配合使用。

.container div%box {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
.bor-box {
    @extend %box;
}

//編譯為:
.container div.bor-box {...}

函式及運算 (Function)

SASS內建了顏色、數字等函式,並支援四則運算及分支、遍歷等特性,同時允許自定義函式。

$baseFontSize: 14px;
$gray: #ccc;
@function pxToRem($px) {
    @return $px / $baseFontSize * 1rem;
}
.dark {
    font-size: $baseFontSize;
    color: darken($gray, 20%);
}
.light {
    font-size: pxToRem(18px);
    color: lighten($gray, 20%);
}

註釋(Comments)

SASS支援 // 形式的單行註釋及 /* */ 形式的多行註釋,但是在編譯成css檔案的時候,單行註釋會被丟棄,而多行註釋則被保留。

相關推薦

SASS基本用法

變數($Variable) 變數以$開頭,既可以用於選擇器(Selector),也可以用於屬性(Property)和屬性值(Value)。 當用於屬性值時,通常可以直接引用;當用於選擇器、屬性和某些複雜屬性值(e.g. font-size/line-heig

shape的基本用法

enc schema 顏色 顏色漸變 mas utf pad 半徑 start <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/

Pinyin4j的基本用法

nts 人的 此外 中文 put stat -s http any     轉自:http://www.cnblogs.com/bluestorm/archive/2012/07/23/2605412.html 1. 簡單介紹 有時候,需要將漢字編程對應的拼音,以

11.python並發入門(part9 多線程模塊multiprocessing基本用法

python 多進程 multiprocessing 一、回顧多繼承的概念。由於GIL(全局解釋器鎖)的存在,在python中無法實現真正的多線程(一個進程裏的多個線程無法在cpu上並行執行),如果想充分的利用cpu的資源,在python中需要使用進程。二、multiprocessing模塊的簡介

Android屬性動畫完全解析(上),初識屬性動畫的基本用法

fcm 操作 fad 擴展性 改變 內部使用 如果 轉載 @override 轉載請註明出處:http://blog.csdn.net/guolin_blog/article/details/43536355 在手機上去實現一些動畫效果算是件比較炫酷的事情,因此Andr

JQuery的基本用法

技術 -1 nbsp jquer 技術分享 9.png log query com JQuery的基本用法

Jquery-zTree的基本用法

etc ssim 希望 取數據 attribute name checked down 個性 【簡介】 zTree 是利用 JQuery 的核心代碼,實現一套能完成大部分常用功能的 Tree 插件 兼容 IE、FireFox、Chrome 等瀏覽器 在一個頁面內可同時

IntBuffer類的基本用法

容量 city out ava test buffer eat ati nis package com.ietree.basicskill.socket.basic.nio; import java.nio.IntBuffer; /** * Created by A

java基礎:運算符的基本用法

自增 另一個 stat 不同 兩個 流程 ava -- 個數 運算符: 就是對常量和變量進行操作的符號。 算數運算符: A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正號 c:字符串連接符 C:/和%的區別 數據做除法操作的時候,/取得是商

windows下boost庫的基本用法

tdi bootstrap c++ org .exe 程序編譯 ring 包括 tar 由於boost都是使用模板的技術,所以全部代碼都是寫在一個.hpp頭文件裏。這樣boost中的大部分內容是不須要編譯生成對應的鏈接庫,僅僅須要設置以下的包括文件夾(或者設置一下環境變

XUtils3框架的基本用法(一)

art put ref undle ret oncreate title 斷點續傳 lis 本文為作者原創,轉載請指明出處: http://blog.csdn.net/a1002450926/article/details/50341173 今天給大

Android_Event Bus 的基本用法

nds lis 接收數據 void ntp this als default blog 1 //事件總線分發 2 public class MainActivity extends ActionBarActivity { 3 Button b

一站式學習Wireshark(一):Wireshark基本用法

11g 實現 alt href ascii 根據 無線網絡 完成 analyze 按照國際慣例,從最基本的說起。 抓取報文: 下載和安裝好Wireshark之後,啟動Wireshark並且在接口列表中選擇接口名,然後開始在此接口上抓包。例如,如果想要在無線網絡上抓取流量

frame與iframe的區別及基本用法

url resize nor ref logs 嵌套 html span 高度 frame 和 iframe 的區別   1、frame 不能脫離 frameset 單獨使用,iframe 可以;   2、frame 不能放到body中,否則將無法顯示;   3、if

Notification的基本用法以及使用RemoteView實現自定義布局

解決 edi ngs 取消 ets lsp 過程 net tde Notification的作用 Notification是一種全局效果的通知,在系統的通知欄中顯示。既然作為通知,其基本作用有: 顯示接收到短消息、即時信息等 顯示客戶端的推送(廣告、優惠、新聞等)

黃聰:ffmpeg基本用法(轉)

sca wid cal ner aspect mp4 動態文本 tegra 控制輸出 FFmpeg FFmpeg 基本用法 本課要解決的問題 1.FFmpeg的轉碼流程是什麽? 2.常見的視頻格式包含哪些內容嗎? 3.如何把這些內容從視頻文件中抽取出來? 4.如

Oracle數據庫的基本用法

blog 重復 單列 rac bsp 算術 .cn 模糊 images 用法實例: --選取整個表的列 1. select * from emp; --選取指定列的內容 select job from emp; select ename,sal from emp;

git 基本用法

out dex 分支 sta ont align git init git clone 文件夾 返回上一個文件 git reset --hard HEAD~1 創建文件 mkdir 文件名 調用文件 cd 文件名 文件夾裏添加文本 touch index.html 文本添

chipmunk 物理引擎的基本概念和基本用法

num 碰撞回調 2.0 ddb mat sha print 單獨 得出 chipmunk是一個開源2D物理引擎, 項目主頁:http://code.google.com/p/chipmunk-physics/ 工作需要研究了一下,這個引擎的資料還是不多,我閱讀了

[C#]正則表達式的基本用法

是否 lin d+ rem 正則 模式 arch mat [0 C#正則表達式的基本用法 正則表達式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串