sass有用的代码段集合(原创)

过年的时候用scss重构过一个项目,还是费了点心思,当时也没有很系统的去学习过scss,只是觉得既然用了就用的彻底点,一些教程里看到的相关的知识点几乎都用上了,自从来实习已经好几个月没写过scss了,刚好看到篇博客写sass的,就把之前的代码总结一下发出来

用map,插值和函数完成背景色的设置

封装如下

$bgC: background-color;

$bgColor: (
panelDanger: # ededed,
top: # 337ab7,
navbarDefault: # e7e7e7,
labelPrimary: # 5cb85c,
panelInfo: # 81b1db,
panelWarning: # efad4d,
pagination: # ededed,
procon: # 337ab7,
indexrank: # 337ab7,
bgC: # f2f2f2,
ccc: # ccc,
fff: # fff
);

@function bgC($class) {
@if not map-has-key($bgColor,$class) {
@warn "No color found for # {$color} in $social-colors map. Property omitted.";
}
@return map-get($bgColor,$class);
}
使用:

{$bgC}: bgC(panelDanger);

编译结果

background-color: # ededed;

使用循环,条件判断完成12-20px偶数大小字占位符的设置

封装如下:

@for $i from 12 through 20 {
@if $i % 2 ==0 {
%fontSize# {$i} {
font-size: $i * .1rem;
}
}
}
使用:

p {
@extend %fontSize14;
}
编译如下:

p {
font-size: 14px;
}

混合宏设置相对/绝对定位及偏移

封装如下

@mixin position($type, $vertical, $v1, $horizon, $v2) {
position: $type;

{$vertical}: $v1;

# {$horizon}: $v2;

}
使用:

.test {
@include position(absolute, top, 50%, left, 50%);
}
编译如下:

.test {
position: absolute;
top: 50%;
left: 50%;
}

占位符和继承实现属性继承

%textCenter {
text-align: center;
}
使用:

p {
@extend %textCenter;
}
编译如下:

p {
text-align: center;
}

使用混合宏数组完成盒模型内外边距的设置

封装如下

$direction: top, right, bottom, left;
@mixin box($property, $side, $value) {

{$property}-# {$side}: $value;

}
使用:

.test {
@include box(margin, nth($direction, 2), 20px);
@each $i in $direction {
@include box(padding, # {$i}, 5px);
}
}
编译如下:

.test {
margin-right: 20px;
padding: 0;
}

嵌套和引用父选择器

.navbar-default a {
&:focus{

{$bgC}: bgC(navbarDefault);

}

}
编译如下:

.navbar-default a:focus {
background-color: # e7e7e7;
}

css3动画加浏览器前缀

封装如下:

$vendors: webkit, moz, ms, o;
@mixin prefix($type, $val) {

{$type}: # {$val};

@each $v in $vendors {

{"-" + $v + "-" + $type}: # {$val};

}
}

使用:

li {
@include prefix(transform, (translate(-50%, -50%)));
@include prefix(transition, (all .5s));
}
编译如下:

li {
transform:translate(-50%, -50%);
-webkit-transform:translate(-50%, -50%);
-moz-transform:translate(-50%, -50%);
-ms-transform:translate(-50%, -50%);
-o-transform:translate(-50%, -50%);
transition:all 0.5s;
-webkit-transition:all 0.5s;
-moz-transition:all 0.5s;
-ms-transition:all 0.5s;
-o-transition:all 0.5s;
}

资料

原完整scss文件地址

关键字:重构, scss

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部