1. 继承: @extend

sass允许一个选择器,继承另一个选择器,通过@extend实现

.class1{
border: 1px solid #333;
}
.class2{
@extend .class1;
font-size: 12px;
}
// .class2继承.class1的样式

注意:class2不仅会继承class1自身的所有样式,任何跟class1有关的组合选择器的样式也会被class2以组合选择器的形式继承

//.class2 从 .class1 继承样式
.class1 a{ //应用到.class2 a
color: red;
font-weight: 100;
}

不要使用后代选择器 (.foo .bar) 去继承css规则

使用场合:当一个元素拥有的类表明它属于另一个类,可以使用继承

2. Mixin混合器:@mixin,给重复用的代码块起个名字

//使用@mixin命令 定义一个代码块
@mixin left {
    float: left;
    margin-left: 10px;
}
//使用 @include命令 调用
div{
@include left;
}

Mixin传参和指定默认参数值:

 @mixin left($value: 10px) {
    float: left;
    margin-right: $value;
  }
//$value默认值是10px,调用时根据需要改变参数
 div {
    @include left(20px);
  }

传参实例:

@mixin link-colors($normal, $hover, $visited) {
color: $normal;
&:hover { color: $hover; }
&:visited { color: $visited; }
}
a {
@include link-colors(blue, red, green);
}
或者用$name: value 的形式指定每个参数的值:

a{
  @include linkColors(
    $link: red,
    $hover: green,
    $visited:#eee
  );
}

 

3. SASS提供了一些内置的颜色函数,以便生成系列颜色

  lighten(#cc3, 10%) // #d6d65c
  darken(#cc3, 10%) // #a3a329
  grayscale(#cc3)   // #808080
  complement(#cc3) // #33c

4. 导入sass文件

后续更新

SASS实现代码的重用:混合器Mixin、继承的更多相关文章

  1. 代码之髓读后感——类&继承

    面向对象 语言中的用语并不是共通的,在不同语言中,同一个用语的含义可能会有很大差别. C++的设计者本贾尼·斯特劳斯特卢普对类和继承给予了正面肯定,然而,"面向对象"这个词的发明者 ...

  2. Linux代码的重用与强行卸载Linux驱动

    (一)Linux代码的重用 重用=静态重用(将要重用的代码放到其他的文件的头文件中声明)+动态重用(使用另外一个Linux驱动中的资源,例如函数.变量.宏等) 1.编译是由多个文件组成的Linux驱动 ...

  3. C++_代码重用3-私有继承

    使用包含:易于理解,类声明中包含表示被包含类的显式命名对象,代码可以通过名称引用这些对象: 使用继承:将使关系更抽象,且继承会引起很多问题,尤其是从多个基类继承时. 私有继承所提供的特性确实比包含多. ...

  4. C++_代码重用4-多重继承

    继承使用时要注意,默认是私有派生.所以要公有派生时必须记得加关键字Public. MI(Multi Inheritance)会带来哪些问题?以及如何解决它们? 两个主要问题: 从两个不同的基类继承同名 ...

  5. jade-mixin 代码的重用

    有时候页面有好多个区块,比如列表区块,但是他们代码结构又是一模一样的怎么弄?jade天生就是节约成本,节约时间的,mixin就是让代码块可以重用的函数   mixin lession p jade s ...

  6. 前端css框架SASS使用教程(转)

    一.什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 本文总结了SASS的主要用法.我的目标是,有了这篇文章,日常的一 ...

  7. sass

    本文来自阮一峰http://www.ruanyifeng.com/blog/2012/06/sass.html 学过CSS的人都知道,它不是一种编程语言. 你可以用它开发网页样式,但是没法用它编程.也 ...

  8. sass入门教程

    一.什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 二.安装和使用 2.1 安装 SASS是Ruby语言写的,必须先 ...

  9. sass基本用法(转载)

    SASS入门教程及用法指南 2014年8月27日 8489次浏览 作为前端开发人员,你肯定对css很熟悉,但是你知道css可以自定义吗?大家都知道,js中可以自定义变量,css仅仅是一个标记语言,不是 ...

随机推荐

  1. windows定位dll的搜索顺序

    原文:http://blog.csdn.net/zzxian/article/details/6429293 Visual C++ Windows 用来定位 DLL 的搜索路径 通过隐式和显式链接,W ...

  2. AdvStringGrid入门使用

    仅仅把数据从数据库中显示到AdvStringGrid中 procedure TForm1.btnQueryClick(Sender: TObject); var i, j: Integer; begi ...

  3. Python类型总结

    python 中处处是类的实例化 a=1 存储的是数字类型 而b='123'是字符串类型 []:读写方便的一张类型 True判断真假的一组{}键值对形式 class:则是描述静态元素和动态元素的结合体 ...

  4. SQL Server 2016 ->> T-SQL新特性

    1) TRUNCATE表分区而不是整表 CREATE TABLE dbo.TruncatePartitionTest ( PrtCol INT, Col2 ) ) ON [myPS1](PrtCol) ...

  5. 24点-code1

    #include <iostream> #include <string> #include <cstdlib> #include <cmath> us ...

  6. Mysql学习---基础操作学习

    1.1. 基本操作 数据库引擎 Inodb:支持事务[原子性操作,完成一些列操作后才算完成操作,否则rollback] MyISAM: 支持全文索引,强调了快速读取操作,主要用于高负载的select ...

  7. 二叉树的二叉链表存储结构及C++实现

    前言:存储二叉树的关键是如何表示结点之间的逻辑关系,也就是双亲和孩子之间的关系.在具体应用中,可能要求从任一结点能直接访问到它的孩子. 一.二叉链表 二叉树一般多采用二叉链表(binary linke ...

  8. Redis入门实例(Redis+Sprint+maven创建工程)

    一.>创建一个maven工程应用和相关配置:Redis_study,创建工程应用过程略 1.>配置pom.xml:文件内容如下 <project xmlns="http:/ ...

  9. new ,malloc

    特征 new/delete malloc/free 分配内存的位置 自由存储区 堆 内存分配失败返回值 完整类型指针 void* 内存分配失败返回值 默认抛出异常 返回NULL 分配内存的大小 由编译 ...

  10. Myeclipse 自带Tomcat启动8080端口占用

    在启动Myeclipse自带的Tomcat发现报错,显示8080端口被占用 第一步:window+r 组合键,调出命令窗口. 第二步:输出命令:netstat -ano|findstr 8080   ...