1、变量声明

$nav-color: #F90;
nav {
//$width 变量的作用域仅限于{}内
$width: 100px;
width: $width;
color: $nav-color;
} .a {
//报错,$width未定义
width: $width;
}

2、父选择器&

scss代码:

article a {
color: blue;
&:hover { color: red }
}

编译后为:

article a {
color: blue;
} article a:hover {
color: red;
}

父选择器的另外一个用途,可以在父选择器之前添加选择器,如处理IE的hack,在html或者body上添加ie class。

示例代码:

#content aside {
color: red;
body.ie & { color: green }
}

编译后为:

#content aside {
color: red;
} body.ie #content aside {
color: green;
}

3、群组选择器

.container {
h1, h2, h3 {margin-bottom: .8em}
}

编译后:

.container h1,
.container h2,
.container h3 {
margin-bottom: .8em;
}

也可以这样:

nav, aside {
a {color: blue}
}

编译后:

nav a,
aside a {
color: blue;
}

4、>、+和~选择器

article {
~ article { border-top: 1px dashed #ccc }
> section { background: #eee }
dl > {
dt { color: #333 }
dd { color: #555 }
}
nav + & { margin-top: 0 }
}

编译后为:

article ~ article {
border-top: 1px dashed #ccc;
} article > section {
background: #eee;
} article dl > dt {
color: #333;
} article dl > dd {
color: #555;
} nav + article {
margin-top:;
}

5、SCSS局文件

sass局部文件的文件名以下划线开头。

目的:

sass就不会在编译时单独编译这个文件输出css,而只把这个文件用作导入。

说明:

(1)使用sass@import规则并不需要指明被导入文件的全名。你可以省略.sass.scss文件后缀

(2)当你@import一个局部文件时,还可以不写文件的全名,即省略文件名开头的下划线

(3)不可以同时存在添加下划线与未添加下划线的同名文件,添加下划线的文件将会被忽略

6、混合器

混合器定义:

@mixin rounded-corners {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}

使用混合器:

notice {
background-color: green;
border: 2px solid #00aa00;
@include rounded-corners;
}

编译后为:

notice {
background-color: green;
border: 2px solid #00aa00;
border-radius: 5px;
}

2个关键字:@mixin和@include

混合器传参:

@mixin link-colors($normal, $hover, $visited) {
color: $normal;
&:hover { color: $hover; }
&:visited { color: $visited; }
}

使用:

a {
@include link-colors(blue, red, green);
}

编译后为:

a {
color: blue;
} a:hover {
color: red;
} a:visited {
color: green;
}

混合器主要用于展示性样式的重用

7、选择器继承

.error {
border: 1px red;
background-color: #fdd;
}
.seriousError {
@extend .error;
border-width: 3px;
}

编译后为:

.error,
.seriousError {
border: 1px red;
background-color: #fdd;
} .seriousError {
border-width: 3px;
}

继承是建立在语义化的关联

Sass 允许延伸任何定义给单个元素的选择器:

.error {
border: 1px #f00;
background-color: #fdd;
}
.error.intrusion {
background-image: url("/image/hacked.png");
}
.seriousError {
@extend .error;
border-width: 3px;
}

编译后为:

.error,
.seriousError {
border: 1px #f00;
background-color: #fdd;
} .error.intrusion,
.intrusion.seriousError {
background-image: url("/image/hacked.png");
} .seriousError {
border-width: 3px;
}

8、@media 媒体查询

.sidebar {
width: 300px;
@media screen and (orientation: landscape) {
width: 500px;
}
}

编译后:

.sidebar {
width: 300px;
} @media screen and (orientation: landscape) {
.sidebar {
width: 500px;
}
}

注意:@media 将被编译到文件的最外层。

SCSS 实用知识汇总的更多相关文章

  1. web前端project师知识汇总

    分类: Web开发应用  一.何为Web前端project师?           前端project师,也叫Web前端开发project师.他是随着web发展.细分出来的行业.Web前端开发proj ...

  2. Oracle手边常用70则脚本知识汇总

    Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...

  3. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  4. Vertica 数据库知识汇总篇

    Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...

  5. 【转】ACM博弈知识汇总

    博弈知识汇总 转自:http://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍 ...

  6. 最全的jQuery知识汇总

    本帖最后由 断天涯大虾 于 2016-12-26 10:22 编辑<ignore_js_op> jQuery是什么? jQuery是javascript编写一个可重用的JavaScript ...

  7. jquery基础知识汇总

    jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...

  8. ACM博弈知识汇总(转)

    博弈知识汇总 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻 ...

  9. [转]【eoeAndroid索引】史上最牛最全android开发知识汇总

    一.开发环境搭建 (已完成) 负责人:kris 状态:已完成 所整理标签为:搭建 SDK JDK NDK Eclipse ADT 模拟器 AVD 调试器(DEBUG) DDMS 测试 日志 Logca ...

随机推荐

  1. PostgreSQL教程收集(中文文档/命令行工具/常用命令)

    http://www.postgres.cn/docs/9.6/index.html(中文文档) https://www.postgresql.org/docs/10/static/auth-meth ...

  2. More about STALL

    http://fx.damasgate.com/more-about-stall/ In other USB classes, a sender can indicate the end of a t ...

  3. LoadRunner的简单使用《第一篇》

    LoadRunner是一个用压力测试的软件.这东西比较难上手,光安装就非常麻烦.好不容易一步步跟着安装说明安装好之后,还是用不了. 记录一个问题如下: 导入脚本的时候报错fail to create ...

  4. 撤销正在审核的app

    一个app还未通过审核,但是新版本已经出来了,怎样才能撤销正在审核的app呢? 方法:在 是binary deatils里用 reject this binary.之后,即可以重新上传代码了.

  5. 《MacTalk·人生元编程》

    <MacTalk·人生元编程> 基本信息 <MacTalk·人生元编程> 基本信息 作者:池建强 出版社:人民邮电出版社 ISBN:9787115342232 上架时间:201 ...

  6. StatefulSet: Kubernetes 中对有状态应用的运行和伸缩

    在最新发布的 Kubernetes 1.5 我们将过去的 PetSet 功能升级到了 Beta 版本,并重新命名为StatefulSet.除了依照社区民意改了名字之外,这一 API 对象并没有太大变化 ...

  7. 内存及字符串操作篇strlen strchar strcmp strcoll strcpy strdup strstr strtok strspn strrchr bcmp bcopy bzero index memccpy memset

    bcmp(比较内存内容) 相关函数 bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp 表头文件 #include<string.h> 定 ...

  8. 【BZOJ】【2626】JZPFAR

    KD-Tree 0.0找第k大…… 裸KD-Tree……跟之前那道找最近的k个点大同小异 一开始理解错:第K大是第K远……不是第K近……(Tunix你个sb 感觉容易出错的是0号点= =边界情况需要仔 ...

  9. 应用Flume+HBase采集和存储日志数据

    1. 在本方案中,我们要将数据存储到HBase中,所以使用flume中提供的hbase sink,同时,为了清洗转换日志数据,我们实现自己的AsyncHbaseEventSerializer. pac ...

  10. linux下添加分区并挂载目录、卸载并删除分区

    添加分区并挂载目录 Linux的硬盘识别: 一般使用”fdisk -l”命令可以列出系统中当前连接的硬盘 设备和分区信息.新硬盘没有分区信息,则只显示硬盘大小信息.   1.关闭服务器加上新硬盘   ...