sass优势: 不做重复的工作

一  消除样式表冗余(通过变量赋值的方式)

1. 通过变量来复用属性值 

   2. 使用嵌套来快速写出多层级的选择器  

   3. 通过混合器来复用一段样式

   4. 使用选择器继承来避免重复属性

sass通过配置文件config.rb配置文件输出路径

sass基础语法

 变量声明  局部变量和全局变量的概念 css代码块中定义的变量就是局部变量

  $base-border:1px solid #ccc;

  $plain-font:Helvetica、"Microsoft Yahei";

  

  变量可以套用变量

  $heightLight-color: #abcedf;

  $heightLight-border: 1px $heightLight-color solid;

  变量命名使用中划线和下划线的结果相同
    $color_btn:red;
    $color-btn:green;

  button{color: $color_btn;} ----编译结果---- >button{color: green;}   样式被覆盖 结果就是green

  

父选择器

  &

.test{
color:red;
&:hover{
color:green;
}
}
--编译-->
.test{color:red;}
.test:hover{color:green;}

群组选择器的嵌套


.container{
  h1, h2, h3{
    margin-right:5px;
    span{
      color: red;
    }
  }
}

--编译之后---->

.container h1, .container h2, .container h3 {
  margin-right: 5px;
}

.container h1 span, .container h2 span, .container h3 span {

  color: red;
}

 

子组合选择器和同层组合选择器   > + ~

>  选择一个元素的直接子元素  article > section{border:1px solid #ccc;}

+ 同层相邻组合器      header + p{ color: red;}  紧邻header的p标签的color:red;

<header><p>我的字体不是红色的</p></header>
<p>我的字体是红色的</p>
<p>我的字体不是红色的</p>

~ 同层所有选择器   article ~section{border: 1px solid #ccc} 所有跟在article同层之后的section都修饰 在article之前的section不被渲染样式

sass的导入

@import 导入scss文件  可以全局导入和局部导入

//先定一个一个名为_blue-theme的scss局部文件
aside{
background:red;
color:white;
} //另一个文件内部
@import "blue-theme"; // 引用文件可以不带下划线 后缀名 也可以局部引入
div{
@import "blue-theme";
}
--编译生成文件-->
div{
aside{
background:red;
color:white;
}
}

混合器传参

@mixin link-colors($normal, $hover, $visited){
color: $normal;
&:hover{color: $hover;}
&:visited{color: $visited}
} div{
@include link-colors(red,black,white); //第一种方式调用
@include link-colors(
$normal:red,
$hover :black,
$visited:white
); //第二种方式调用
}

最新文章

  1. koa简介
  2. SourceTree推送时,增加额外的远程仓库,不用每次都自定义粘贴复制网络
  3. table表格宽度固定,同时td内容过长也不会被撑开
  4. CSAPP学习笔记(异常控制流1)
  5. Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
  6. BI之SSAS完整实战教程6 -- 设计维度、细化维度上:创建维度定义特性关系
  7. IDEA 编译错误:java: try-with-resources is not supported in -source 1.6 (use -source 7 or higher to enable try-with-resources)
  8. PHP 之 Laravel 框架安装及相关开源软件
  9. JavaWeb:基于MVC设计模式的一个小案例(一)
  10. Jquery构建Form表单Post提交数据的简单方法
  11. CButtonST的用法详解【转】
  12. 201521123104《JAVA程序设计》第9周学习总结
  13. 初学Python(第二课)
  14. Maximum Entropy Model(最大熵模型)初理解
  15. Docker操作笔记(三)数据管理
  16. hbase-0.92.1表备份还原
  17. sphinx-2.1.9的安装使用
  18. ListView的BeginUpdate()和EndUpdate()作用[z]
  19. 阿里云ECS配置踩坑之路
  20. java算法:统计数字-将数字转换成字符串,然后使用字符串String.valueOf()方法进行判断

热门文章

  1. 移动端H5页面惯性滑动监听
  2. JS 时间转换为时间戳
  3. [译]what is bootstrap
  4. 系统启动时,dts怎么被加载的?
  5. 【JavaScript_DOM 淘宝购物车】
  6. JavaScript数组forEach()、map()、reduce()方法
  7. BZOJ 1002: [FJOI2007]轮状病毒【生成树的计数与基尔霍夫矩阵简单讲解+高精度】
  8. Vue.js实现一个SPA登录页面的过程
  9. win10安装配置jdk的环境变量
  10. 【转载】keil5中加入STM32F10X_HD,USE_STDPERIPH_DRIVER的原因