1.1下载地址:

  http://rubyinstaller.org/downloads

2.1 安装

SASS是Ruby语言写的,但是两者的语法没有关系。不懂Ruby,照样使用。只是必须先安装Ruby,然后再安装SASS。

假定你已经安装好了Ruby,接着在命令行输入下面的命令:

  gem install sass

然后,就可以使用了。

2.2 使用

SASS文件就是普通的文本文件,里面可以直接使用CSS语法。文件后缀名是.scss,意思为Sassy CSS。

下面的命令,可以在屏幕上显示.scss文件转化的css代码。(假设文件名为test。)

  sass test.scss

如果要将显示结果保存成文件,后面再跟一个.css文件名。

  sass test.scss test.css

SASS提供四个编译风格的选项:

  * nested:嵌套缩进的css代码,它是默认值。

  * expanded:没有缩进的、扩展的css代码。

  * compact:简洁格式的css代码。

  * compressed:压缩后的css代码。

生产环境当中,一般使用最后一个选项。

  sass --style compressed test.sass test.css

你也可以让SASS监听某个文件或目录,一旦源文件有变动,就自动生成编译后的版本。

  // watch a file

  sass --watch input.scss:output.css

  // watch a directory

  sass --watch app/sass:public/stylesheets

SASS的官方网站,提供了一个在线转换器。你可以在那里,试运行下面的各种例子。

三、基本用法

 变量

SASS允许使用变量,所有变量以$开头。

Sass源代码:

  1. $blue:#1875e7;
  2. div{
  3. color:$blue;
  4. }
  5.  
  6. $side:left;
  7. /*asassdf*/
  8. .rounded{
  9. .round{
  10. border-#{$side}-radius:5px;
  11. }
  12.  
  13. }
  14.  
  15. /*计算能力*/
  16. $var:2;
  17. body{
  18. margin: (14px/2);
  19. top:50px + 100px;
  20. right:$var * 20%;
  21. }
  22.  
  23. /*嵌套*/
  24. div h1{
  25. color:red;
  26. }
  27.  
  28. /*也可以写成这样*/
  29. /*属性的嵌套必须要在属性后成加上冒号*/
  30. p{
  31. border:{
  32. color:red;
  33.  
  34. }
  35. }
  36. /*关于注释:
  37. 又斜杠是在css文件中是不显示的;
  38. C++方式注释的方法会留在CSS文件中;
  39. */
  40.  
  41. /*继承*/
  42. .class1{
  43. margin:0 auto;
  44. border:1px solid #000;
  45. }
  46. .class2{
  47. @extend .class1;
  48. font-size:120%;
  49. }
  50.  
  51. /*Mixin 宏的使用*/
  52. @mixin left{ //定义mixin宏
  53. float:left;
  54. margin-left:10px;
  55. }
  56.  
  57. div{
  58. @include left; //@include 用于引用minxin宏;
  59.  
  60. }
  61.  
  62. /*带参数的minxin宏*/
  63. @mixin left($value:20px){
  64. float:left;
  65. margin-right:$value;
  66. }
  67.  
  68. //使用带参数的mixin宏;
  69. div{
  70. @include left(40px);
  71.  
  72. }
  73.  
  74. /*Sass高级语法*/
  75. //@if 语句的使用;
  76. p{
  77. @if 1 + 1 == 2{
  78. border:1px solid #000;
  79. }
  80.  
  81. @if 3 < 2{
  82. border:2px solid #fff;
  83.  
  84. }
  85. }
  86. //@else 语句的使用;
  87. /*
  88. @function linghtness($value){
  89. @return $value;
  90. }
  91. $color:20%;
  92. @if linghtness($color) > 30%{
  93. background-color:#000;
  94. }@else{
  95. background-color:#fff;
  96. }*/
  97.  
  98. //for 语句的使用;
  99. @for $i from 1 to 5 {
  100. .itme-#{$i} {width:100px; height:100px; }
  101. }
  102.  
  103. //while语句
  104.  
  105. $i:6;
  106.  
  107. @while $i > 0 {
  108. .itme-#{$i} {width: 2em * $i;}
  109. $i:$i - 2;
  110.  
  111. }
  112.  
  113. //each命令
  114. @each $member in a, b, c, d, f{
  115.  
  116. .#{$member}{
  117. background-image:url("../images/#{$member}.jpg");
  118. }
  119. }

对应生成的CSS文件:

  1. @charset "UTF-8";
  2. div {
  3. color: #1875e7;
  4. }
  5.  
  6. /*asassdf*/
  7. .rounded .round {
  8. border-left-radius: 5px;
  9. }
  10.  
  11. /*计算能力*/
  12. body {
  13. margin: 7px;
  14. top: 150px;
  15. right: 40%;
  16. }
  17.  
  18. /*嵌套*/
  19. div h1 {
  20. color: red;
  21. }
  22.  
  23. /*也可以写成这样*/
  24. /*属性的嵌套必须要在属性后成加上冒号*/
  25. p {
  26. border-color: red;
  27. }
  28.  
  29. /*关于注释:
  30. 又斜杠是在css文件中是不显示的;
  31. C++方式注释的方法会留在CSS文件中;
  32. */
  33. /*继承*/
  34. .class1, .class2 {
  35. margin: 0 auto;
  36. border: 1px solid #000;
  37. }
  38.  
  39. .class2 {
  40. font-size: 120%;
  41. }
  42.  
  43. /*Mixin 宏的使用*/
  44. div {
  45. float: left;
  46. margin-left: 10px;
  47. }
  48.  
  49. /*带参数的minxin宏*/
  50. div {
  51. float: left;
  52. margin-right: 40px;
  53. }
  54.  
  55. /*Sass高级语法*/
  56. p {
  57. border: 1px solid #000;
  58. }
  59.  
  60. /*
  61. @function linghtness($value){
  62. @return $value;
  63. }
  64. $color:20%;
  65. @if linghtness($color) > 30%{
  66. background-color:#000;
  67. }@else{
  68. background-color:#fff;
  69. }*/
  70. .itme-1 {
  71. width: 100px;
  72. height: 100px;
  73. }
  74.  
  75. .itme-2 {
  76. width: 100px;
  77. height: 100px;
  78. }
  79.  
  80. .itme-3 {
  81. width: 100px;
  82. height: 100px;
  83. }
  84.  
  85. .itme-4 {
  86. width: 100px;
  87. height: 100px;
  88. }
  89.  
  90. .itme-6 {
  91. width: 12em;
  92. }
  93.  
  94. .itme-4 {
  95. width: 8em;
  96. }
  97.  
  98. .itme-2 {
  99. width: 4em;
  100. }
  101.  
  102. .a {
  103. background-image: url("../images/a.jpg");
  104. }
  105.  
  106. .b {
  107. background-image: url("../images/b.jpg");
  108. }
  109.  
  110. .c {
  111. background-image: url("../images/c.jpg");
  112. }
  113.  
  114. .d {
  115. background-image: url("../images/d.jpg");
  116. }
  117.  
  118. .f {
  119. background-image: url("../images/f.jpg");
  120. }

Sass学习的更多相关文章

  1. Sass学习笔记(补充)

    阅读目录 1. Sass和SCSS的区别 2. @while循环 3. @at-root 4. @content 5. 凸显注释 6. CSS输出样式 7. 重置浏览器样式 8. Sass调试和@de ...

  2. Sass学习第一天

    Sass学习 网站学习地址: Sass中文网:https://www.sass.hk/docs/#t7-3 Airen的博客:https://www.w3cplus.com/preprocessor/ ...

  3. Sass学习笔记之入门篇

    Sass又名SCSS,是CSS预处理器之一,,它能用来清晰地.结构化地描述文件样式,有着比普通 CSS 更加强大的功能. Sass 能够提供更简洁.更优雅的语法,同时提供多种功能来创建可维护和管理的样 ...

  4. gulp + webpack + sass 学习

    笔记: new webpack.optimize.CommonsChunkPlugin 核心作用是抽离公共代码,chunks:['index.js','main.js'] 另一个作用就是单独生成一个j ...

  5. sass学习笔记1

    less在处理CSS动画时,非常恶心,决定转向sass了.sass诞生得比less早,只是因为它是ruby写的,因此受众面够少.但我们不需要自己下编译器或使用命令行,我们可以koala这神器 首先几个 ...

  6. sass学习(2)——关于变量

    定义一个sass变量 可以说,变量是一个编程语言的基础.所以对于sass来说,变量肯定是浓墨重彩的其中一笔,当然函数也是.那我们如何声明定义一个sass的变量呢? 变量的符号$ 变量名称 变量的值 那 ...

  7. sass学习(1)——了解sass

    为什么要选择sass 我们在手写css中,会遇到很多很麻烦的问题.倒不是一些技术的问题,而是工程量的问题.例如,如何可以代替难记的16进制颜色,如何可以让层次更清晰,还有重复的代码该如何偷懒.其实这一 ...

  8. sass 学习

    本来看了阮一峰和于江水两位老师的博客,有看了ionic自带的sass文件,原以为自己已经是很熟悉,精通了.可是我居然连ruby都不知道真实惭愧啊,辛亏看了www.sass.hk  我想这篇官方文档肯定 ...

  9. 菜鸟的 Sass 学习笔记

    介绍 sass 是什么?? 在sass的官网,它是这么形容给自己的 Sass is the most mature, stable, and powerful professional grade C ...

  10. SASS学习笔记!(持续学习中..)

    工具  : koala 学习网址 : http://www.w3cplus.com/sassguide/syntax.html  http://sass-lang.com/documentation/ ...

随机推荐

  1. 用redis实现支持优先级的消息队列

    http://www.cnblogs.com/tianqiq/p/4309791.html http://www.cnblogs.com/it-cen/p/4312098.html http://ww ...

  2. redux-applyMiddleware实现理解+自定义中间件

    前言: 终于好好理解了middleware.... 1.redux middleware提供的是位于 action 被发起之后,到达 reducer 之前的扩展点. redux通过store.disp ...

  3. (一)Eclipse 快捷键

    Ctrl+Alt+Down,即可以在下面快速复制一行 Ctrl+Alt+Up,即可以在上面快速复制一行.   1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键 ...

  4. BJUI 转

    B-JUI 前端框架B-JUI(Bootstrap for DWZ)是一个富客户端框架,基于DWZ-jUI富客户端框架修改. 本文是B-JUI中文使用手册,包括使用示例代码,感兴趣的同学参考下. 概览 ...

  5. 在hibernate中使用SQL语句

  6. JBoss 系列十一:JBoss Cluster Framework Demo 介绍

    内容概要 JBoss Cluster Framework Demo包括JGruops.JBossCache.Infinispan,我们在随后的系列中会使用和运行这些示例来说明JGroups.JBoss ...

  7. sublime Text3配置及快捷键、插件推荐总结

    一.基础 1.重要文档: sublime Text3官方文档中文版:http://feliving.github.io/Sublime-Text-3-Documentation/ sublime Te ...

  8. location.href的用户总结

    *.location.href 使用方法: top.location.href="url"          在顶层页面打开url(跳出框架) self.location.href ...

  9. mysql 时区 , 夏令时,冬令时

    mysql默认时区: mysql> show variables like '%time_zone%'; +------------------+--------+ | Variable_nam ...

  10. optimizer hints

    In version MySQL 5.7.7 Oracle presented a new promising feature: optimizer hints. However it did not ...