用border生成三角形的@mixin:css
// triangle @mixin triangle($direction, $size, $borderColor ) { content:""; height: 0; width: 0; @if $direction == top { border-bottom:$size solid $borderColor; border-left:$size dashed transparent; border-right:$size dashed transparent; } @else if $direction == right { border-left:$size solid $borderColor; border-top:$size dashed transparent; border-bottom:$size dashed transparent; } @else if $direction == bottom { border-top:$size solid $borderColor; border-left:$size dashed transparent; border-right:$size dashed transparent; } @else if $direction == left { border-right:$size solid $borderColor; border-top:$size dashed transparent; border-bottom:$size dashed transparent; } }
這個@mixin主要有三個變量:第一個是方向的,由於三角形根據箭頭朝向有四種方向,咱們對應經常使用的css屬性top,right,bottom,left;第二個表示三角形的大小;第三個表示顏色。固然你能夠挑你經常使用的那個設置爲變量的默認值,那樣調用經常使用的那個就比較簡單了,直接@include triangle;
就ok了。html
編譯以後的css代碼:sass
/* line 192, ../sass/test1.scss */ .top { content: ""; height: 0; width: 0; border-bottom: 20px solid #322222; border-left: 20px dashed transparent; border-right: 20px dashed transparent; } /* line 195, ../sass/test1.scss */ .bottom { content: ""; height: 0; width: 0; border-top: 20px solid #322222; border-left: 20px dashed transparent; border-right: 20px dashed transparent; } /* line 198, ../sass/test1.scss */ .left { content: ""; height: 0; width: 0; border-right: 20px solid #322222; border-top: 20px dashed transparent; border-bottom: 20px dashed transparent; } /* line 201, ../sass/test1.scss */ .right { content: ""; height: 0; width: 0; border-left: 20px solid #322222; border-top: 20px dashed transparent; border-bottom: 20px dashed transparent; }
頁面html代碼:spa
<div class="top"></div> <div class="left"></div> <div class="right"></div> <div class="bottom"></div>
效果:.net