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(
$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 這一指代是有嚴格的定義的,即符合柯爾莫果洛夫公理
Day40、this指標和常函式、解構函式、物件的建立和銷燬過程、拷貝構造和拷貝賦值(深拷貝、淺拷貝!)
一、 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 LESS、SASS、SCSS高亮插件、提示插件
兼容 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