用sass用了好久,期初看中的是他的嵌套功能,因为刚开始的时候是用jquery,电脑安装Ruby,全局安装sass,将scss编译为css,
不得不说真的很方面,节点套节点,和html的很类似。但是后来用了vue等框架后,嵌套功能远远不能满足需求。做移动端,需要适配,当
时抛弃了rem,使用vw,但是如果每个自己计算就很麻烦,当时想的是要是css可以像js那样,写一个函数转换,然后调用函数就好了。于
是初识了sass的函数,此后还有变量什么的。最近花了点时间,将sass全看了一遍,做一下总结吧
  以下是我项目中用的比较多,或者个人觉得比较重要的特性。
    1.(节点)可嵌套性(这个是基础,用的太多太多了,必须掌握)
    2. 变量:变量以$开头(通常网站会有基础变量,譬如基础字体,基础色调等,可以将他们赋值给一个变量,以后调用变量就好了,很类似js里的变量)
    3. Mixins(混合@mixin):可重用性高,可以注入任何东西
      注意点: 1.可以相互调用,但是不能拿自己调用自己,形成递归
           2.通过@include引用
      例子:
        @mixin banner {
          width: 100%;
          position: relative;
          color: $deeepBlue;
          .banner-content {
            position: absolute;
            top: 50px;
            width: 100%;
          }
        }
        .lead-banner {
          @include banner;
        }
    4. @extend:允许一个选择器继承另一个选择器
      例子:
        .a1 {
          color: blue;
        }
        .a2 {
          @extend .a1;
          font-size: 12px;
          }
    5. @function:函数功能,用户使用@function可以去编写自己的函数(常用)
      使用语法: 使用 @function+函数名称,每个函数都需要有返回值的内容
      例子:
        @function du($r) {
          @return $r*2
        }

        .a8 {
          border: solid #{du(2)}px red;
        }
    6. 引用父元素&:在编译时,&将被替换成父选择符(常用)
      例子:
        a {
          font-size: 20px;
          text-decoration: none;
          &:hover {
            text-decoration: underline;
          }
        }
      编译后:
        a {
          font-size: 20px;
          text-decoration: none;
         }
        a:hover {
          text-decoration: underline;
         }

    7. 计算功能(会用 但是不多吧)
      例子:
        p {
          margin: 20px + 30px;
          width: (100% / 6);
        }
      编译后:
        p {
          margin: 50px;
          width: 16.6666666667%;
        }
    8. 组合连接: #{} : 变量连接字符串(目前用到的是这个)
      例子:
        $name: foo;
        $attr: border;
        p.#{$name} {
          #{$attr}-color: blur;
        }

      被编译为:
        p.foo {
          border-color: blur;
        }
    9. 循环语句:(很少用到)
      例子:
        @for $i from 1 to 10 {
          .a5_img#{$i} {
            background-image: url('images/img#{$i}.png');
          }
        }

        @while $j>0 {
          .a5_img#{$j} {
            background-image: url('images/img#{$j}.png');
          }
          $j:$j - 1;
        }

        @each $item in 1,2,3,4,5 {
          .a5_img#{$item} {
            background-image: url('images/img#{$item}.png');
          }
        }
    10. if语句:(很少用到)
      例子:
        @mixin bgcolor($b) {
          @if($b==5) {
            background-color: #fff;
          } @else if($b == 6) {
            background-color: green;
          } @else {
            background: blue;
          }
        }

  总结1: 目前用的最多的或者个人觉得比较重要点,以后可能会用到的大概是这10个吧,sass还有其他的特性,这是我自己总结出来的觉得
比较nice的。还有一点需要注意,引用sass是使用@import,sass编译有一个特点,就是当一个sass或scss的文件名以下划线_
开头,那么这个文件就不会被编译。一般定义基础样式的时候会选择这个。

  总结2: sass与scss的区别:(其实是一种东西)
    1. scss是sass3引入的新语法,语法完全兼容css3, 继承了sass的功能
    2. scss和sass大部分语法相同,唯一不同的是,scss需要使用分号和花括号,sass是以严格的缩进式语法缩写---换行和缩进
    3. 文件扩展名不同

sass(scss)10大常用重要特性的更多相关文章

  1. 【Sass/SCSS】我花4小时整理了的Sass的函数

    [Sass/SCSS]我花4小时整理了的Sass的函数 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 Sass 定义了各 ...

  2. sass/scss 和 less的区别

    一. Sass/Scss.Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量 ...

  3. HTML5的常用新特性你必须知道

    HTML5的常用新特性你必须知道 1 新的 声明 HTML 有多个不同的版本,只有完全明白页面中使用的确切 HTML 版本,浏览器才能完全正确地显示出 HTML 页面.这就是 的用处. 不是 HTML ...

  4. 10大H5前端框架(转)

    10大H5前端框架 作为一名做为在前端死缠烂打6年并且懒到不行的攻城士,这几年我还是阅过很多同门从知名到很知名的各种前端框架,本来想拿15-20个框架来分享一下,但在跟几个前辈讨教写文章的技巧时果断被 ...

  5. Sass预定义一些常用的样式

    一.编写sass文件时, 目录不能有中文, 如: E:\\CPC手机, 会报错exception while processing events: incompatible character enc ...

  6. Less、Sass/Scss

    一.Less.Sass/Scss是什么? 1.Less: 是一种动态样式语言. 对CSS赋予了动态语言的特性,如变量.继承.运算.函数. Less 既可以在客户端上运行 (支持IE 6+, Webki ...

  7. sass/scss 和 less对比

    一. Sass/Scss.Less是什么? Sass (Syntactically Awesome Stylesheets)是一种动态样式语言,Sass语法属于缩排语法,比css比多出好些功能(如变量 ...

  8. Sass/Scss 基础篇

    Sass/Scss 基础篇 总结Sass学习到的内容 应用Sass/Scss前,环境配置 首先下载Ruby (http://rubyinstaller.org/downloads) 通过命令下载sas ...

  9. 【Sass/SCSS】预加载器中的“轩辕剑”

    [Sass/SCSS]预加载器中的"轩辕剑" 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 随着前端 ...

随机推荐

  1. RouterOS(ROS)简单限速/单IP限速脚

    暂无评论 有时企业环境,或个人使用环境需要针对不同IP设置较多条不同限速,可以使用以下脚本批量处理后,再针对性的修改. *脚本说明:“2 to 254”定义要设置受限IP的起始,后面“192.168. ...

  2. POJ1061 青蛙的约会 和 LOJ2721 「NOI2018」屠龙勇士

    青蛙的约会 Language:Default 青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 133470 Accep ...

  3. JS上传图片-通过FileReader获取图片的base64

    下面文章,我想要的是: FileReader这个对象,可以借助FileReader来获取上传图片的base64,就可以在客户端显示该图片了.同时,还可以把该图片的base64发送到服务端,保存起来. ...

  4. mouseout与mouseleave的区别

    1 mouseout:当鼠标指针从元素上移开时,发生 mouseout 事件.该事件大多数时候会与 mouseover 事件一起使用. 2 mouseout与 mouseleave 事件不同,不论鼠标 ...

  5. findBug 错误修改指南

      1. EC_UNRELATED_TYPESBug: Call to equals() comparing different types Pattern id: EC_UNRELATED_TYPE ...

  6. 【java并发编程艺术学习】(二)第一章 java并发编程的挑战

    章节介绍 主要介绍并发编程时间中可能遇到的问题,以及如何解决. 主要问题 1.上下文切换问题 时间片是cpu分配给每个线程的时间,时间片非常短. cpu通过时间片分配算法来循环执行任务,当前任务执行一 ...

  7. hadoop mapreduce 计算平均气温的代码,绝对原创

    1901 46 1902 21 1903 48 1904 33 1905 43 1906 47 1907 31 1908 28 1909 26 1910 35 1911 30 1912 16 1913 ...

  8. 【Java】Java程序员面试宝典(第三版)第5章----Java程序设计基本概念

    1.static静态变量,在次级作用域也可以被修改. 2.k++ + k++.第一个自加实际上只有在与计算+k++时补增.详情P36的题目. 3.Java数据类型从低到高分为(byte short c ...

  9. C++中的友元小结

    我们知道,在一个类总可以有公有的(public)成员和私有的(private)成员.在类外可以访问公用成员,只有本类中的函数可以访问本类的私有成员. 现在,我们学习一种新的情况--友元. 在C++中, ...

  10. Jmeter分布式测试需要注意事项

    Jmeter分布式测试需要注意事项: 1. 如果脚本中有用到CSV Data Set Config,则所有的模拟机都必须在相应的目录下存在该文件.如下图,则必须所有模拟机的F盘下都有user.txt文 ...