结合之前的Sass的混合-@mixin,@include,加入@if的相关语法
sass文件内容 common.scss
// 画三角形@mixin声明
@mixin sj($fx:top,$size:100px,$color:red){
@if ($fx == top) {
border-color: transparent transparent $color transparent;
border-style: dashed dashed solid dashed;
}
@else if($fx == right){
border-color: transparent transparent transparent $color;
border-style: dashed dashed dashed solid;
}
@else if($fx == bottom){
border-color: $color transparent transparent transparent;
border-style: solid dashed dashed dashed;
}
@else if($fx == left){
border-color: transparent $color transparent transparent;
border-style: dashed solid dashed dashed;
}
width: 0px;
height: 0px;
overflow: hidden;
border-width: $size;
}
//mixin的调用
.demo{
@include sj(left);
}
sass编译后:
.demo {
border-color: transparent red transparent transparent;
border-style: dashed solid dashed dashed;
width: 0px;
height: 0px;
overflow: hidden;
border-width: 100px; }
新建测试页面 sass.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="style/common.css" type="text/css">
</head>
<body>
<div class="demo"></div>
</body>
</html>
运行查看页面输出:
如图所示:页面输出为一个三角形,剪头朝左
通过sass的@if,@else if语法,根据传入参数,实现动态输出css样式