一、Scss

1.CSS有几个缺点

  • 语法不够强大,没有变量和合理的样式复用机制
  • 使得逻辑上相关的属性值必须以字面的形式重复输出,难以维护
  • 动态的样式语言为css富裕了动态语言的特性
  • 极大的提高了样式语言的可维护性

常见的样式语言:

1.scss/sass(scss兼容sass,scss更接近css的语法格式)

2.stylus

3.less

动态语言------css预处理----->*.css

2.什么是SCSS

是一款强化css的辅助工具

在css的语法上,增强了变量、嵌套,混合,导入,函数等高级功能。这些拓展另css更加强大与优雅。

3.scss的作用,有助于更好的管理样式文件,以及更高效的开发项目。

4.scss的使用

1.在服务器端使用

  • 安装nodejs解释器
  • 安装scss的编译程序

在线安装  npm install -g node-sass

注意:要求node.js版本在8.11以上

2. 把sass包中的4个文件拷贝进node.js文件夹

  • 在黑窗口或者ws的控制台(alt+f12)输入
  • node-sass-v 检测sass版本
  • 如果输入版本,说明sass安装成功

3.编写01.scss文件

  1. 把.scss转化为.css文件
  2. 在正确路径下,打开黑窗口,输入
  3. node-sass scss/01.scss    css/01.css
  4. 如果生成01.css则正确
  • 批量把scss转化为css,多文件转换命令
  • node-sass  scss 文件夹 -o css文件夹
  • 单文件监听命令,scss文件一旦保存,自动转换为css文件
  • node-sass -w scss/01.scss css/01.css

多文件监听

  • node-sass  -w scss -o css

二、SCSS的基础语法 

1.变量

使用$表示变量

变量的命名规范,遵循css中选择器的命名规范,

可以包含_ -,不能以数字开头,见名知意

  1. $jd-red:#f10125;颜色变量
  2. $w:100px;数值变量
  3. $before-content:"子曾经曰过"字符串变量
  4. $border-style:solid;样式变量

注意:

  1. 声明变量时,变量值可以应用其他的变量。
  2. 变量定义在{}规则外边,整个样式文件中都可以使用,如果定义在{}规则块外边,只能在当前规则块中使用。
  3. 声明重复变量,后声明的变量会覆盖前面的变量。
  4. !default规则,如果变量已经声明赋值了,那就用它之前声明的值

样式嵌套规则:

#content{

color:#f00;

div.top{

margin:0 auto;

h1{font-weight:normal}

p{font-size:20px;}

}

}

a{

color:#f00;

&:hover{

color:#00f;

}

}

群组选择器的嵌套

nav,div,footer{

a{

color:#000;

&:hover{color:#f00;}

}

}

属性嵌套

div{

border:{style:solid;width:1px;color:#f00;}

}

2.导入scss文件

在SCSS中,局部文件以下划线开头

这样做,sass在编译时就不会编译以下划线开头的文件,而是把这个文件用作导入。

引入局部文件时,是关键字@import "局部文件名",局部文件省略了下划线和后缀。

并且一个局部文件可以被多个SCSS文件引用。

3.混合器

把需要在多个样式文件中出现的,相同的部分提取出来,封装到混合器中。

关键字 @mixin 混合器名称{重用的样式}

使用,关键字 @include 混合器名称。就可以在很多的样式中使用封装好的样式了。

带参数的混合器(类似参数的function)

  • 定义混合器的时候,在()添加参数
  • 调用混合器的时候,在()把参数补上

@mixin lin-colors($normal,$hover,$visited){

color:$normal;

$:hover{color:$hover}

$:visited{color:$visited}

}

ul li a{

@include lin-colors{#f00,#0f0,#00f};

}

#content a{

@include lin-colors{#faa,#afa,#aaf};

}

4.继承

继承就是说一个选择器可以继承另一个选择器定义的所有样式

在css中的表现形式是两个选择器共有的部分,变成了群组选择器

三、运算

1.数字

  • 加减乘除,求模取值
  • 会在不同单位间转换值
  • width:1in+8pt;
  • scss不能转换相对单位
  • height:1rem+1em;

(1)注意:加法

p::before{

content:"Microsoft"+yahei;

font-family:A+"rial"

}

结果

content:"Microsoftyahei";

font-family:Arial;

+  可以用于连接字符串

如果用引用去连接无引号的字符串,结果是有引号的

如果用无引号去连接有引号的字符串,结果是无引号的

(2)减法

-  会被优先解析为变量名,所以使用变量和减法,需要-前后添加空格

width:$size  -  $my-width

(3)除法

在scss中,除号经常起到分隔的用途 /

p{

font:10px/5px;

$width:100px;

width:$width/2;

height:(500px/2);

margin:5px+8px/2px;

}

在以下的情况视为除法运算

  1. 如果值,或者值的一部分,是变量或者函数的返回值
  2. 如果值被小括号包裹,视为除法
  3. 如果值是算术表达式的一部分,视为除法

(4)运算表达式与其他值连用时,用空格做连接

margin:4px + 5px auto;

(5)在有引号的字符串中,使用#{}插值语句可以添加动态的值

content:"I ate #{16+23} baozis"

2.颜色的运算

颜色是分段计算的,红+红  绿+绿  蓝+蓝

rgb(23,32,45)+rgb(11,23,33)

rgba(11,22,33,0.1)+rgba(22,33,44,0.1)

两个rgba相加,alpha的值,必须相等才可以计算,因为算术运算符不会作用到alpha

四、函数

1.scss定义了多种函数,有些函数甚至直接在css中调用

1.颜色函数

  • rgba(red,green,blue,alpha)
  • hsl(hue,saturation,lightness)
  • hue:色调  取值 0~360 3个色段 每120 一个色段
  • saturation:饱和度 0.0%~100.0%
  • lightness:亮度 0.0%~100.0%

2.数字函数

round($value) 四舍五入

ceil($value)向上取整

floor($value)

max($v1,$v2,.......)

min($v1,$v2,........)

random()

3.字符串函数

unquote($string) 删除字符串引号

quote($string)给字符串添加引号

To-upper-case()

To-lower-case()

2.自定义函数

@function 函数名($n){

函数体;

@return 结果;

}

四.控制指令

@if  1+1=4{border-radius:50%}

@else if(1-1==-1){border-radius:30%}

@else {border-radius:10%}

@if,@else if ,@else

boolean 表达式,可以添加括号,也可以不加

Scss的使用场景的更多相关文章

  1. Vue ES6 Jade Scss Webpack Gulp

    一直以来非常庆幸曾经有翻过<代码大全2>:这使我崎岖编程之路少了很多不必要的坎坷.它在软件工艺的话题中有写到一篇:"首先是为人写程序,其次才是机器(Write Programs ...

  2. Scss - 简单笔记

    原文链接:scss 教程 手头上疯狂在用 scss,虽然可以在里面写原生的 css, 但是为了保持风格的一致性,还是滚去看了看 scss 文档. 一.变量 变量的引入是 scss 的一个核心特性,变量 ...

  3. vue2.0以上版本安装sass(scss)

    一.首先说明sass和scss的区别. 1.异同:1)简言之可以理解scss是sass的一个升级版本,完全兼容sass之前的功能,又有了些新增能力.语法形式上有些许不同,最主要的就是sass是靠缩进表 ...

  4. SCSS快速入门

    SCSS快速入门 1. 使用变量sass引入了变量.通过变量名来引用它们,使用$符号来标识变量.且在CSS中并无他用,不会导致与现存或未来的css语法冲突. 1-1. 变量声明sass变量的声明和cs ...

  5. [HTML] SCSS 备忘录

    Sass是成熟.稳定.强大的CSS预处理器,而SCSS是Sass3版本当中引入的新语法特性,完全兼容CSS3的同时继承了Sass强大的动态功能. 特性概览 CSS书写代码规模较大的Web应用时,容易造 ...

  6. Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G

    code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...

  7. 学习SCSS

    目录 变量 嵌套 引入 混合 继承 操作符 CSS扩展 嵌套属性 标签(空格分隔): 未分类 变量 变量用来存储需要在CSS中复用的信息,例如颜色和字体.SASS通过$符号去声明一个变量. $font ...

  8. 使用react+redux+react-redux+react-router+axios+scss技术栈从0到1开发一个applist应用

    先看效果图 github地址 github仓库 在线访问 初始化项目 #创建项目 create-react-app applist #如果没有安装create-react-app的话,先安装 npm ...

  9. SCSS 教程

    https://www.jianshu.com/p/a99764ff3c41 https://www.sass.hk/guide/ 1. 使用变量; sass让人们受益的一个重要特性就是它为css引入 ...

随机推荐

  1. 第一次 在Java课上的编程

    第一次在java课上的编程(使用参数输入求和): 代码: public class He {    public static void main(String[] args)    {       ...

  2. SQL SERVER 数据库中查看文本字段中的数据长度LEN() 函数的使用方法

    SQL LEN() 语法 SELECT LEN(column_name) FROM table_name Id LastName FirstName Address City 1 Adams John ...

  3. Linux 命令之 mkdir

    mkdir的作用是创建一个目录,可以理解为 make directory 的缩写. 创建目录 mkdir dir_name 在当前目录创建一个名为 dir_name 的目录. 同时创建多级目录 假设现 ...

  4. mysql的十二条基本语句

    在 mysql里,所有语句都以分号作为结束标志! 1.连接服务器 Mysql -u username -p passwd 2.当连上服务器后,首先面对的是库,库有1个或多个,因此我们想对表进行操作的话 ...

  5. drf源码save以及response

    drf源码save以及response 一.save 其中蛮重要的一段 if self.instance is not None: self.instance = self.update(self.i ...

  6. Java学习笔记之基础语法(数据类型)

    8种基本数据类型    整型:   byte[1字节]          short[2字节]        int[4字节]         long[8字节]      1,四种整型之间的区别:申 ...

  7. 实验吧之【简单的sql注入 1、2、3】

    实验吧的三道sql注入(感觉实验吧大部分web都是注入) 简单的SQL注入 地址:http://ctf5.shiyanbar.com/423/web/ 这道题也是sql注入,输入1,页面显示正常,输出 ...

  8. ThinkPhp3.1.3执行存储过程返回false

    1.Tp在调用存储过程的时候,每次都显示false 返回一大片,下面是我自己的代码.

  9. Halcon一日一练:图像采集设备的基本参数

    因操作图像处理之前,需要对图像进行采集.采集图像,我们首先要确定的是图像的像素和采集的效率.这些都需要对设备进行配置与操作.现实情况是图像设备有各自不同的采集方式,配置也各不相同.这就需要设备提供商提 ...

  10. php好在哪?

    PHP即“超文本预处理器”,是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 PHP 自创的语法.利于学习 ...