SCSS @mixin傳參
關於混合器的基本用法可以參閱SCSS @mixin一章節。
混合器一個很重要特性就是可以傳遞引數,可以根據不同場景來定製css程式碼的複用。
極大提高了混合器的適用性,看如下程式碼例項:
[Scss] 純文字檢視 複製程式碼@mixin makeradius($radius) { border-radius: $radius; } antTest{ background-color: blue; border: 4px solid #ccc; @include makeradius(8px); }
編譯生成的css程式碼如下:
[CSS] 純文字檢視 複製程式碼antTest{ background-color: blue; border: 4px solid #ccc; border-radius: 8px; }
這樣的話,圓角尺寸就不是一個固定值,而是可以根據需要進行定製。
再看一段程式碼例項:
[Scss] 純文字檢視 複製程式碼@mixin setborder($color, $width) { border: { color: $color; width: $width; style: dashed; } } p { @include setborder(blue, 2px); }
如果混合器沒帶引數,那麼可以省略小括號;如果帶有引數,必須帶有小括號。
引數與引數之間用逗號分隔。
也可以給混合器的引數設定預設值,看如下程式碼程式碼例項:
[Scss] 純文字檢視 複製程式碼@mixin setborder($color, $width: 2px) { border: { color: $color; width: $width; style: dashed; } } p { @include setborder(green); } h1 { @include setborder(green, 4px); }
上面的程式碼中,設定第二個引數$width預設值是2px,如果沒有傳遞此引數,那麼就直接使用預設值。
如果傳遞了此引數,那麼新的引數將會覆蓋預設引數。
傳遞引數也可以使用鍵值對的方式,程式碼例項如下:
[Scss] 純文字檢視 複製程式碼@mixin setborder($color, $width) { border: { color: $color; width: $width; style: dashed; } } h1 { @include setborder($color: green, $width: 4px); }
引數變數(...)也可以在@include引用混合器的時候,將值列表中的值逐條作為引數引用:
[Scss] 純文字檢視 複製程式碼@mixin colorlist($text, $background, $border) { color: $text; background-color: $background; border-color: $border; } $values: #ccc, #0ff, #fff; .orignal{ @include colorlist($values...); }
這已經都有類似於ES2015中的剩餘引數的味道。
相關文章
- scss null在@mixin傳參中的應用CSSNull
- SCSS @mixinCSS
- CSS程式碼段-scss mixinCSS
- SCSS @mixin和class 區別CSS
- JAVA值傳參和引用傳參Java
- react中路由傳參和url傳參React路由
- Java傳參傳值Java
- angular路由傳參Angular路由
- 【SpringMVC】傳參SpringMVC
- [SpringMVC] 傳參SpringMVC
- Vue路由傳參Vue路由
- angular 路由傳參Angular路由
- scssCSS
- 二維陣列傳參做形參陣列
- vue傳參之通過Vue屬性$route的params傳參Vue
- Vue 路由傳值(傳參)詳解Vue路由
- 網頁地址傳參網頁
- react router路由傳參React路由
- jQuery .click()方法傳參jQuery
- Vue查詢傳參Vue
- Vue Mixin混入Vue
- C語言中變參函式傳參探究C語言函式
- python函式的入參和傳參Python函式
- SCSS @importCSSImport
- SCSS @extendCSS
- SCSS @if() 指令CSS
- SCSS @eachCSS
- SCSS !globalCSS
- SCSS @for 指令CSS
- SCSS !optionalCSS
- SCSS @mediaCSS
- Vue傳參一籮筐Vue
- JS傳參技巧總結JS
- React事件傳參深度理解React事件
- vue巢狀元件傳參Vue巢狀元件
- 「前端」weex頁面傳參前端
- vc http post傳參提交HTTP
- 二維陣列傳參陣列