Sass之自定義函數(shù)

考慮到sass自定義函數(shù)用到地方比較多,并且后續(xù)需要單獨(dú)拿出來和Mixin、extend進(jìn)行比較,所以將原本屬于上一篇《Sass函數(shù)功能匯總》的這部分知識,在這里另開篇幅了。

【Sass函數(shù)功能匯總】:http://www.itdecent.cn/p/ef2ca6fbf944

1. 創(chuàng)建和使用自定義函數(shù)

Sass和其他腳本語言有類似之處,可以利用變量來構(gòu)建自己的函數(shù),這使Sass可以像寫JavaScript那樣擁有自己的邏輯。下面是Sass自定義函數(shù)的基本結(jié)構(gòu):

@function function-name($args) {
    @return value-to-be-returned;
}
body{
  font-size: function-name($args);
}
  • 創(chuàng)建自定義函數(shù)需要兩個Sass指令, @function和 @return。前者創(chuàng)建函數(shù),后者表明了函數(shù)將返回的值
  • function-name代表函數(shù)名,在Sass中function-name和 function_name是相同的函數(shù),所以可使用破折號或下劃線調(diào)用函數(shù),無論命名時使用的是哪個。
  • 傳遞到函數(shù)中的參數(shù)$args是可選的,通常會使用傳遞過去的參數(shù)進(jìn)行運(yùn)算,也可能是一些所有函數(shù)都可以訪問的全局變量。
//SCSS
@function column-width($col, $total) {
  @return percentage($col/$total);
}
.col-3 {
  width: column-width(3, 8);
}
.col-5 {
  width: column-width(5, 8);
}
//CSS
.col-3 {  width: 37.5%; }
.col-5 {  width: 62.5%; }

2. 關(guān)鍵字參數(shù)

傳參的時候有時候會不知道每個參數(shù)是什么意思,參數(shù)之間是一個什么樣的順序。為了解決這個問題,Sass允許通過語法$name: value的形式指定每個參數(shù)的值。這種形式的傳參,參數(shù)順序就不必再在乎了,只需要保證沒有漏掉參數(shù)即可:

//SCSS
@function column-width($col, $total) {
  @return percentage($col/$total);
}
.col-3 {
  width: column-width($col:3, $total:8);
}
.col-5 {
  width: column-width($total:5,$col:8);
}
//CSS
.col-3 {  width: 37.5%; }
.col-5 {  width: 160%; }

3. 默認(rèn)參數(shù)

為了在使用函數(shù)是不必傳入所有的參數(shù),我們可以給參數(shù)指定一個默認(rèn)值。參數(shù)默認(rèn)值使用$name: default-value的聲明形式,默認(rèn)值可以是任何有效的css屬性值,甚至是其他參數(shù)的引用。

//SCSS
@function column-width($col:3, $total:8) {
  @return percentage($col/$total);
}
.col-3 {
  width: column-width($col:2, $total:4);
}
.col-5 {
  width: column-width();
}
//CSS
.col-3 {  width: 50%; }
.col-5 {  width: 37.5%; }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,503評論 0 13
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,235評論 0 38
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 30,192評論 8 265
  • 椰風(fēng)海韻蕩漾過唐宋詩明清畫 漁歌船帆飄灑在朝霞中夕陽下 魂牽魄繞 夢里出發(fā) 我來到美麗富饒的三沙 永興島拜訪將軍林...
    珠江潮平閱讀 557評論 40 46

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