scss知识点总结

参照:https://blog.csdn.net/pedrojuliet/article/details/72887490

1、什么是SCSS

​ Sass是成熟、稳定、强大的css预处理器,而SCSS是Sass3版本当中引入的新语法特性,完全兼容CSS3的同时,也继承了Sass强大的动态功能

2、Scss和Sass区别

Scss是Sass的一个升级版本,安全兼容Sass之前的功能,又有些新增的能力

  • 文件扩展名不同,Sass 是以“.sass”后缀为扩展名,而 Scss 是以“.scss”后缀为扩展名
  • 语法书写方式不同,Sass 是以严格的缩进式语法规则来书写,不带大括号({})和分号,而 Scss 用大括号{}取代了原来的缩进。

3、特色功能

  • 完全兼容CSS3
  • 在CSS基础上增加变量、嵌套、混合、导入等功能
  • 通过函数进行颜色值与属性值的运算
  • 提供控制指令等高级功能
  • 自定义输出格式

4、支持的6种数据类型:数字、字符串、颜色、布尔、空值nul、数组(用空格或逗号做分隔符)、maps(相当于JavaScript的object)


5、Sass、Less和stylus区别

相同点:均具有变量、混合、嵌套、继承、颜色混合五大基本特性

不同点:

(1) 变量名

  • Sass变量必须以$开头,变量名和值之间使用冒号隔开
$maincolor : #092873;
$siteWidth : 1024px;
$borderStyle : dotted;
body {
  color: $maincolor;
  border: 1px $borderStyle $mainColor;
  max-width: $siteWidth;
}
  • Less 变量都是用@开头的,变量名和值之间使用冒号隔开

    @maincolor : #092873;
    @siteWidth : 1024px;
    @borderStyle : dotted;
    
  • stylus对变量是没有任何设定,可以是$开头,或者任何符号,但是stylus中不能用@开头

    maincolor = #092873
    siteWidth = 1024px
    borderStyle = dotted
    

(2)继承

  • sass可以通过@extend来实现代码组合声明

    .message {
      border: 1px solid #ccc;
      padding: 10px;
      color: #333;
    }
    .success {
      @extend .message;
      border-color: green;
    }
    
  • Less写法更像混入写法

    .message {
      border: 1px solid #ccc;
      padding: 10px;
      color: #333;
    }
    .success {
      .message;
      border-color: green;
    }
    

最终呈现的css样式

.message, .success{
  border: 1px solid #cccccc;
  padding: 10px;
  color: #333;
}
.success {
  border-color: green;
}

(3)混合器

  • Sass

    @mixin error($borderWidth:2px) {
      border: $borderWidth solid #F00;
      color: #F00;
    }
    .ge-error {
      padding: 20px;
      margin: 4px;
      @ include error(); //这里调用默认 border: 2px solid #F00;
    }
    .log-error {
      left: 12px;
      position: absolute;
      top: 20px;
      @ include error(5px); //这里调用 border:5px solid #F00;
    }
    
  • Less的混入写法

    .error(@borderWidth:2px) {
      border: @borderWidth solid #F00;
      color: #F00;
    }
    .ge-error {
      padding: 20px;
      margin: 4px;
      .error(2px);
    }
    
  • Stylus的混入写法

    error(borderWidth= 2px) {
      border: borderWidth solid #F00;
      color: #F00;
    }
    .ge-error {
      padding: 20px;
      margin: 4px;
      error(); 
    }
    

提问:

1、变量名命名的时候以什么开头

以美元符号($)开头

2、伪类的嵌套,需要添加什么当做占位符,不然会生成空格

&符号当做占位符

3、使用下划线开头的scss文件和不使用下划线开头的scss文件有什么区别

下划线开头的scss文件是局部scss文件,不使用下划线开头的scss文件是全局scss文件,局部文件不会转换成对应的css文件

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值