sass基础用法
嵌套:
1.选择器嵌套;
2.属性嵌套;
.box {
border-top: 1px solid red;
border-bottom: 1px solid green;
}
.box {
border: {
top: 1px solid red;
bottom: 1px solid green;
}
}
3.伪类嵌套;
.box:before {
content: "伪元素嵌套";
}
.box{
&:before {
content:"伪元素嵌套";
}
}
4.跳出嵌套;@at-root
跳出嵌套
body{
@at-root .container{
width: 20px;
}
}
混合宏:
在 Sass 中通过 @mixin 关键词声明了一个混合宏,那么在实际调用中,其匹配了一个关键词“@include”来调用声明好的混合宏
@mixin border-rad($rad1...){
-webkit-border-radius:$rad1;
-moz-border-radius:$rad1;
-o-border-radius:$rad1;
-ms-border-radius:$rad1;
border-radius:$rad1;
}
.box4{
@include border-rad(36px 30px 10px red,2px 5px 6px red);
}
继承:在 Sass 中也具有继承一说,继承类中的样式代码块。在 Sass 中是通过关键词 “@extend”来继承已存在的类样式块,从而实现代码的继承。
.btn {
border: 1px solid #ccc;
padding: 6px 10px;
font-size: 14px;
}
.btn-primary {
background-color: #f36;
color: #fff;
@extend .btn;
}
.btn-second {
background-color: orange;
color: #fff;
@extend .btn;
}
效果:
.btn, .btn-primary, .btn-second {
border: 1px solid #ccc;
padding: 6px 10px;
font-size: 14px;
}
占位符:Sass 中的占位符 %placeholder 功能是一个很强大,很实用的一个功能。他可以取代以前 CSS 中的基类造成的代码冗余的情形。因为 %placeholder 声明的代码,如果不被 @extend 调用的话,不会产生任何代码。
%mt5 {
margin-top: 5px;
}
%pt5{
padding-top: 5px;
}
.btn {
@extend %mt5;
@extend %pt5;
}
.block {
@extend %mt5;
span {
@extend %pt5;
}
}
效果:
.btn, .block {
margin-top: 5px;
}
.btn, .block span {
padding-top: 5px;
}
插值:
$properties: (margin, padding);
@mixin set-value($side, $value) {
@each $prop in $properties {
#{$prop}-#{$side}: $value;
}
}
.login-box {
@include set-value(top, 14px);
} //它可以让变量和属性工作的很完美,上面的代码编译成 CSS: .login-box {
margin-top: 14px;
padding-top: 14px;
} @mixin asd($wid,$hei,$classname,$bg,$name){
#{$name}:$wid;
height:$hei;
.#{$classname}{
#{$bg}:red;
} }
运算:
.box {
width: 20px + 30px;
}
效果:
.box {
width: 50px;
}
.box {
width: 20px - 30px;
}
效果:
.box {
width: -10px;
}
.box {
width: 20px * 30px;
}
效果:
.box {
width: 600px;
}
注意运算符之间要用空格隔开;
函数:
颜色函数:
body{
color: rgb(255,0,200);
}
body{
$color: rgb(255,0,200);
color: $color;
background-color: rgba($color,0.5);
}
p{
color: darken($color, 2);
background-color: lighten($color,0.5);
}
str-length(),str-index();
z-index:str-length("aaaaa");得到的结果是,Z-index:5;
z-index:str-index("abcdfedd",c);得到的结果是,Z-index:3;
自定义函数:
@function double($width){
@retrun $width * 2;
}
控制命令:
//@if
@mixin blockOrHidden($boolean:true) {
@if $boolean {
@debug "$boolean is #{$boolean}";
display: block;
}
@else {
@debug "$boolean is #{$boolean}";
display: none;
}
} .block {
@include blockOrHidden;
} .hidden{
@include blockOrHidden(false);
} 编译出来的CSS: .block {
display: block;
} .hidden {
display: none;
} @debug报错时调试
//@for
@for $i from <start> through <end>
@for $i from <start> to <end>
$i 表示变量
start 表示起始值
end 表示结束值 关键字 through 表示包括 end 这个数,而 to 则不包括 end 这个数。 @for $i from 1 through 3 {
.item-#{$i} { width: 2em * $i; }
}
编译出来的 CSS: .item-1 {
width: 2em;
} .item-2 {
width: 4em;
} .item-3 {
width: 6em;
} //@while
$types: 4;
$type-width: 20px; @while $types > 0 {
.while-#{$types} {
width: $type-width + $types;
}
$types: $types - 1;
} 编译出来的 CSS .while-4 {
width: 24px;
} .while-3 {
width: 23px;
} .while-2 {
width: 22px;
} .while-1 {
width: 21px;
}
//@each
$k: 1;
@each $c in blue, yellow, gray{
.div#{$k}{
color: $c;
}
$k: $k + 1;
} @each $key,$value in (a: blue, b: yellow, c: gray){
.class#{$key}{
color: $value;
}
}
sass基础用法的更多相关文章
- sass的用法小结(四)进阶篇
Sass 的数据类型 Sass 既然有了类似编程语言的功能,自然也就有了简单的数据类型.这里简单的介绍一些 Sass 中的数据类型,因为在后面的讨论中要用到有关的内容. Sass 中主要有六种数据类型 ...
- PropertyGrid控件由浅入深(二):基础用法
目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...
- logstash安装与基础用法
若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...
- elasticsearch安装与基础用法
来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...
- BigDecimal最基础用法
BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...
- [转]前端利器:SASS基础与Compass入门
[转]前端利器:SASS基础与Compass入门 SASS是Syntactically Awesome Stylesheete Sass的缩写,它是css的一个开发工具,提供了很多便利和简单的语法,让 ...
- Vue组件基础用法
前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...
- Smarty基础用法
一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...
- 前端自动化测试神器-Katalon的基础用法
前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...
随机推荐
- Hadoop基础思维导图
- Xcode will continue when iPad is finished. "Could not find Developer Disk Image"
1: Xcode will continue when iPad is finished. 等待进度条读取完成即可: 2: xcode,安装新版本的iOS 的 xcode 支持文件 的路径: /ap ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
- Erlang C1500K长连接推送服务-性能
Whatsapp已经使用Erlang在生产环境跑到96GB内存单机 3M长连接,参加:WhatsApp的Erlang世界.毕竟业务级别能达到Whatsapp那样极少,现在只有千万级,单机太多挂一台影响 ...
- zepto弹出层组件
html: <!DOCTYPE html> <html> <meta charset="utf-8"> <title></ti ...
- NVelocity
迭代内置对象: velocityCount 集合数 : count NVelocity遇到不能处理的引用时,一般会直接输出标签名称. 在$符号后加个!号,出现Null时,标签的内容就会显示空白 ...
- 51. 顺时针打印矩阵[print matrix in clockwise direction]
[本文链接] http://www.cnblogs.com/hellogiser/p/print-matrix-in-clockwise-direction.html [题目] 输入一个矩阵,按照从外 ...
- windows 下搭建简易nginx+PHP环境
2016年11月19日 14:40:16 星期六 官网下载 nginx, php windows下的源码包(windows下不用安装, 解压即可) 修改配置文件, (稍后补上) 路径如下: 启动脚本: ...
- MVC4中基于bootstrap和HTML5的图片上传Jquery自定义控件
场景:mvc4中上传图片,批量上传,上传前浏览,操作.图片进度条. 解决:自定义jquery控件 没有解决:非图片上传时,会有浏览样式的问题; 解决方案; 1.样式 – bootstrap 的css和 ...
- display:none与visible:hidden的区别 slideDown与
display:none与visible:hidden的区别 display:none和visible:hidden都能把网页上某个元素隐藏起来,但两者有区别: display:none ---不为被 ...