用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. Uva 10820 Send a Table(欧拉函数)

    对每个n,答案就是(phi[2]+phi[3]+...+phi[n])*2+1,简单的欧拉函数应用. #include<iostream> #include<cstdio> # ...

  2. PS 滤镜— —挤压效果

    clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); I=imread ...

  3. bzoj 4817: [Sdoi2017]树点涂色 LCT+树链剖分+线段树

    题目: Bob有一棵n个点的有根树,其中1号点是根节点.Bob在每个点上涂了颜色,并且每个点上的颜色不同. 定义一条路径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色. Bob可能会进 ...

  4. bzoj 3221: Obserbing the tree树上询问 树链剖分+线段树

    题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=3221 题解 啊呀...这是昨天的考试题啊...直接就粘了.. 与4515: [Sdoi2 ...

  5. [POI 2018] Plan Metra

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=5100 [算法] 首先分两类考虑 : 1. 1 -> N的路径不经过其它节点 , ...

  6. [转]unity3d中创建双面材质

    在其它三维软件中设置好的双面材质导入到unity3d中就失去了效果,不过我们可以通过自定义材质来在unity3d中实现双面材质的效果.步骤如下:1.在资源库中新建一新shader:代码如下: Shad ...

  7. 面向对象(Java中普通代码块,构造代码块,静态代码块区别及代码示例)

    //执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 //普通代码块:在 ...

  8. TreeSet 和TreeMap 排序

    TreeSet 有两种排序方式 1. Java.lang.Comparble+compareTo new TreeSet() 用这种方法必须要求实体类实现Comparable接口,也就是说要求添加到T ...

  9. Asp.net Core学习笔记

    之前记在github上的,现在搬运过来 变化还是很大的,感觉和Nodejs有点类似,比如中间件的使用 ,努力学习ing... 优点 不依赖IIS 开源和跨平台 中间件支持 性能优化 无所不在的依赖注入 ...

  10. 多对多 hibernate映射

    数据库: create table EMPLOYEE ( EMPID NUMBER(6) not null, EMPNAME VARCHAR2(32) ) alter table EMPLOYEE a ...