2015.6.28
1、安装ruby
2、运行gem安装sass-->gem install sass
3、编译命令行
sass --watch 文件路径/test.scss:编译后文件路径/test.css --style 四编译方式
四种编译方式
(1)嵌套输出方式 nested
(2)嵌套输出方式 expanded
(3)紧凑输出方式 compact
(4)压缩输出方式 compressed

4、代码编写
1.全局变量与局部变量
2.嵌套选择器和嵌套属性
$color:red;
nav{
a{
color:$color
}
}
nav{
padding{
top:20px;
left:20px;
}
}
3.嵌套伪类选择器
.clearfix{
&:before,
&:after{
content:" ";
display:table
}
&:after{
clear:both;
overflow:hidden;
}
}
4.混合宏声明
@mixin border-radius{
-webkit-border-radius:5px;
border-radius:5px;
}
5.调用混合宏
.box{
@include border-radius;
}
6.混合宏传参
@mixin border-radius($radius){
-webkit-border-radius: $radius;
border-radius: $radius;
}

.box {
@include border-radius(3px);
}
7.混合传参
@mixin border-radius($radius:3px){ /* 3px为默认值 */
-webkit-border-radius: $radius;
border-radius: $radius;
}

.btn {
@include border-radius; /* 调用宏,可以通过传入特定的值调用宏,如:@include border-radius(50%) */
}
8.多个参数定义
实现居中代码
@mixin center($width,$height){
width: $width;
height: $height;
position: absolute;
top: 50%;
left: 50%;
margin-top: -($height) / 2;
margin-left: -($width) / 2;
}
调用
.box-center {
@include size(500px,300px);
}
9.混合宏的缺点
Sass 在调用相同的混合宏时,并不能智能的将相同的样式代码块合并在一起。这也是 Sass 的混合宏最不足之处。
@mixin border-radius{
-webkit-border-radius: 3px;
border-radius: 3px;
}

.box {
@include border-radius;
margin-bottom: 5px;
}

.btn {
@include border-radius;
}
编译后
.box {
-webkit-border-radius: 3px;
border-radius: 3px;
margin-bottom: 5px;
}

.btn {
-webkit-border-radius: 3px;
border-radius: 3px;
}
无法将border-radius宏声明的代码抽出来定义,会导致编译出来的代码冗长
10.代码继承 @extend
sass代码:
.btn {
border: 1px solid #ccc;
padding: 6px 10px;
font-size: 14px;
}

.btn-primary {
background-color: #f36;
color: #fff;
@extend .btn;
}
编译后css代码:
.btn, .btn-primary { /*继承样式*/
/* -------------- */
border: 1px solid #ccc;

padding: 6px 10px;

font-size: 14px; }

.btn-primary {

background-color: #f36;

color: #fff; }
11.占位符 %
%mt5 {
margin-top: 5px;
}

.btn {
@extend %mt5; /* 通过@extend 调用继承 */
}
如果不被 @extend调用的话,%所声明并不会被编译,只会静静的躺在scss文件中
如果被@extend调用了之后编译结果如下
.btn {
margin-top: 5px; }

sass基础学习的更多相关文章

  1. sass基础学习(一)

    移动端布局各种问题 pc端布局各种问题sass 组件模块化面向对象编程ajax 框架学习 webpack 打包 性能优化 gulp是基于Nodejs的自动任务运行器她能自动化地完成 javascrip ...

  2. Sass基础——Rem与Px的转换

    rem是CSS3中新增加的一个单位值,他和em单位一样,都是一个相对单位.不同的是em是相对于元素的父元素的font-size进行计算:rem是相对于根元素html的font-size进行计算.这样一 ...

  3. bootstrap基础学习【菜单、按钮、导航】(四)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. salesforce 零基础学习(五十二)Trigger使用篇(二)

    第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...

  5. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  6. IOS基础学习-2: UIButton

    IOS基础学习-2: UIButton   UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...

  7. HTML5零基础学习Web前端需要知道哪些?

    HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...

  8. python入门到精通[三]:基础学习(2)

    摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...

  9. python入门到精通[二]:基础学习(1)

    摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...

随机推荐

  1. iOS摄像头和相册-UIImagePickerController-浅析(转)

    iOS摄像头和相册-UIImagePickerController-浅析(转) 转自: http://blog.sina.com.cn/s/blog_7b9d64af0101cfd9.html 在一些 ...

  2. web UI

    Semantic不错的UI,代码非常详细

  3. 摇滚吧HTML5!有声前端交互!(一)

    生命的伊始,婴儿用明亮的哭声宣告一个新生命的诞生,睁开双眼之前,一双小耳朵已经开始聆听这个世界.在如今的用户体验领域,几乎所有公司都会有视觉设计师,却鲜有注重听觉交互的公司.随着各大厂商对HTML5支 ...

  4. 转:struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系

    在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下:typedef unsigned short sa_family_t; ...

  5. Android修改XML文件

    最近在项目中需要使用XML记录数据,网上这方面的文章较少,记录一下 使用DOM方式 /** * 追加内容到XML文档 * @param instructions * @throws ParserCon ...

  6. ural 1572 Yekaterinozavodsk Great Well

    #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> # ...

  7. BZOJ1639: [Usaco2007 Mar]Monthly Expense 月度开支

    1639: [Usaco2007 Mar]Monthly Expense 月度开支 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 529  Solved: ...

  8. HDOJ 1061 Rightmost Digit(循环问题)

    Problem Description Given a positive integer N, you should output the most right digit of N^N. Input ...

  9. linux下常用FTP命令

    linux下常用FTP命令 1. 连接ftp服务器 1. 连接ftp服务器格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1b)服 ...

  10. Java中setCharAt()方法介绍

    --转载自网络,备忘 这是StringBuffer类里面的一个方法:主要是用来替换的,方法里面有两个参数setCharAt(int index,Char ch),第一个参数是取代的位置 索引从0开始 ...