scss 入门

1. scss 引入其他文件

  1. 引入其他 .scss 文件

    @import 'index.scss'

    这样的话,文件在编译后,会自动把引入的文件和当前文件合并为一个. scss 文件

  2. 引入其他 .css 文件

    @import 'index.css'

    和引入. scss 文件不同,这样引入的. css 文件在编译后不会和当前文件合并为一个. scss 文件,而是继续保持为外链引入方式

2. scss 注释方法

scss 的注释有两种

  1. 块注释

    /*

    */
  2. 行注释

    //

3. scss 变量

scss 变量分为 3 种,以 $ 符号开头, 后面紧跟变量名。变量名和变量值之间用冒号:分开

  1. 常规变量

    $key: value;
  2. 默认变量

    $key: value!default;

    默认变量是可以被覆盖的,具体覆盖方法如下

    $font: 12px;
    $font: 14px!default;
  3. 特殊变量

    $fontSize:14px;
    font:#{$fontSize}
  4. 多值变量

    多值变量分为 listmap 两种类型,list 类似于 js 的数组,map 类似于对象

4. 嵌套

嵌套分为两种:

  1. 选择器嵌套(目前经常使用的)
  2. 属性嵌套:不经常使用

    在属性选择器中,&表示父元素选择器

5. 混合

@mixin 调用 @mixin 方法需要使用 @include

/*普通混合*/
@mixin font{
line-height:10px;
color: #fff;
} .footer{
@include font;
}

以上相当于:

.footer{
line-height: 10px;
color: #fff;
}
/*带参数混合*/
@mixin font($size:12px){ //这里面的参数是默认的意思
font-size: $size;
}
.footer{
@include font(16px);

6. 继承

使用继承会让该选择器继承指定选择器的所有样式, 要使用关键词 @extend,后面跟上指定的选择器

.font{
font-size:14px;
height: 16px;
}
.footer{
@extend .font;
border-width: 2px;
}

以上相当于:

.font, .footer{
font-size:14px;
height: 16px;
}
.footer{
border-width: 2px;
}

站位选择器

% 选择器名,通过@extend 去调用,如果不调用,则文件编译后不会出现改该冗余 css 文件

%dir{
font-size: 14px;
}
%clear{
overflow: hidden;
}
div{
@extend %dir;
}

只有 %dir 选择器被调用了,%clear 在编译的时候会被当做冗余文件给过滤掉,不会出现在编译后的.css文件中

7. 函数

sass 内置了很多函数,自己也可以定义函数。以 @function 开始@return 返回值

@function per(data){
@return data/10px;
} div{
font-size: per(140px);
}

以上等价于:

div{
font-size: 14px;
}

8. 其他功能

其他功能包括以下几点

  1. 运算:对于(数字,颜色,变量)的四则(加减乘除)运算, 运算符前后各保留一格空格

  2. if 判断:@if 可以单独使用,也可以配合 @else、@else if 一起使用

  3. 三目运算符:if(true,1px,2px),返回的值是 1px,if(false,1px,2px), 返回的值是 2px

  4. for 循环,共有两种写法:

    1). @for va rfrom through

    2). @for var from to

    两种写法唯一的区别就是,through 包括 end 这个数,to 不包括 end 这个数

    .col {
    width: 100%;
    $class-prefix: col-;
    @for $n from 1 through 12 {
    &.#{$class-prefix}#{$n} {
    width: ($n/12) * 100%;
    }
    }
    $class-prefix: offset-;
    @for $n from 1 through 12 {
    &.#{$class-prefix}#{$n} {
    margin-left: ($n / 12) * 100%;
    }
    }
    }
  5. each 循环,@each $var in ,list 和 map 分别表示为 list 和 map 类型数据。

scss 入门的更多相关文章

  1. scss入门学习(一)

    sass的文件后缀名 sass是目前流行的css预处理语言.sass有两种后缀文件,一种是.sass,不允许使用大括号和分号:另一种是.SCSS,允许使用大括号和分号,类似于我们平时写css的语法习惯 ...

  2. scss 入门基础

    在一个项目中,样式是必不可少的一部分,而对于一个完整的项目来说是有个基准色调的.在项目需求变化不大的情况下,可以直接在css中写这些颜色值之类的东西.但是如果遇到一个朝令夕改的领导或者甲方,那会变得相 ...

  3. sass或scss入门

    1.sass环境搭载: 安装ruby 安装sass 安装compass 配置webstorm 如果只是使用sass的话,就配置sass命名监听就好了 如图: sass目录如下: 如果配置了compas ...

  4. 1-1 sacc(scss)入门

    定义: CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作. 通俗的说,“ ...

  5. SCSS入门

    1. CSS预处理器 定义了一种新的专门的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代码的维护等诸多好处 ...

  6. Sass&Scss入门 选择器 混合器 导入 条件判断 迭代

    Sass 基于ruby的一种将脚本解析成CSS的脚本语言.也可以说是一种预处理语言. Sass在css的语法基础上增加了变量.嵌套.混合.继承.导入等高级功能. 使用Sass与Sass样式库(如com ...

  7. SCSS详解

    SCSS入门 CSS预处理器 定义了一种新的专门的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代码的维护等 ...

  8. web前端知识总结

    前言: 一直想着整理一下关于前端的知识体系和资料,工作忙了些,挤挤总会有的,资料很多,就看你能不能耐下心坚持去学了,要多学多敲多想,祝你进步~ 学习之前首先要大概了解什么是HTML ,CSS , JS ...

  9. sass.scss简单入门

    最近研究了一下sass和scss,清晰结构化,在某些地方的确强大,所以写了一篇入门教程,大概15分钟左右就能明白基本原理 什么是sass(css预处理器) Sass官网上是这样描述sass的,sass ...

随机推荐

  1. struts2-core-2.3.20.jar

    核心配置位于该jar struts-default.xml struts-2.3.dtd <?xml version="1.0" encoding="UTF-8&q ...

  2. 8) pom.xml

    http://maven.apache.org/ref/3.3.3/maven-model/maven.html 执行mvn命令的时候默认文件名pom.xml 也可以通过 -f 指定 比如 mvn - ...

  3. WCF客户端第一请求server特别慢,解决办法

    最近开发WCF应用的客户端,第一连接WCF后,请求数据返回的速度特别慢,不知道原因如何.最后改了下系统生成的APP.Config文件就好了,原来没有useDefaultWebProxy的选项,没有的时 ...

  4. stdafx.h、stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编

    sstdafx.h.stdafx.cpp是干什么用的?为什么我的每一个cpp文件都必须包含stdafx.h? Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要 ...

  5. Redis之序列化POJO

    redis存储方式有很多种,但是我个人觉得最好用的并非是String存储类型,而是Hash存储类型,如果在使用redis的时候单纯的只使用到String存储类型的话,我个人觉得完全体现不了redis的 ...

  6. memcached分布式缓存系统

    在数据驱动的Web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵活.此时 ...

  7. 在c#客户端程序中使用log4net

    为什么使用log4net 有些日志语句只是在开发中用于调试的,不应该在Release版本中输出,log4net通过配置文件可以为Debug和Release不同的模式设置不同的输出级别来控制,而且如果已 ...

  8. c# 控制台应用程序怎么隐藏黑窗口

    class Program     {         [DllImport("user32.dll", EntryPoint = "ShowWindow",  ...

  9. Asp.net Core 和类库读取配置文件信息

    Asp.net Core 和类库读取配置文件信息 看干货请移步至.net core 读取配置文件公共类 首先开一个脑洞,Asp.net core 被使用这么长时间了,但是关于配置文件(json)的读取 ...

  10. [C#]C#时间日期操作

    一.C# 日期格式 1. DateTime dt = DateTime.Now; 2. dt.ToString();//2005-11-5 13:21:25 3. dt.ToFileTime().To ...