css,sass,scss和less的区别

css,sass,scss和less的区别

1.css

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言

css预处理器:

css预处理器定义了一种新语言,是用一种专门的编程语言,进行网页的样式设计,之后在被编译为正常的css文件,以供项目使用。

为什么使用css预处理器:css只是一个标记语言,不是编程语言,不可以自定义变量,不可以引用等

使用css预处理语言的好处:是css更加简洁、方便修改、可读性强、适用性强并且更易于代码的维护

2.sass

sass是由buby语言编写的一款css预处理语言,和html一样有严格的缩进风格,和css编写规范有着很大的出入,是不使用花括号和分号的,所以不被广为接受。

sass语法只是在原有css语法基础上做了一些语法扩展(添加了一些新的css特性)

scss 与sass
CSS书写代码规模较大的Web应用时,容易造成选择器、层叠的复杂度过高,因此推荐通过SASS预处理器进行CSS的开发,SASS提供的变量、嵌套、混合、继承等特性,让CSS的书写更加有趣与程式化

sass和scss都是css预处理语言,其后缀名是分别为 .sass和.scss两种。
SASS版本3.0之前的后缀名为.sass,而版本3.0之后的后缀名.scss。
继sass之后scss的编写规范基本和css一致,sass时代是有严格的缩进规范并且没有‘{}’和‘;’。而scss则和css的规范是一致的。

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

3.sass和scss的使用

  • sass语法中,支持单行注释,多行注释
  • sass的选择器嵌套语法
  • 声明变量,一般声明变量在所有嵌套语法的最外层,变量必须以$开头
  • 函数@function,@return这样的指令必须以@开头
// sass 语法只是在原有css语法基础上做了一些语法扩展(添加了一些新的css特性)
// sass 语法中, 支持 单行注释,多行注释
// sass 的 选择器的嵌套语法

// 声明变量, 一般声明在所有嵌套语法的最外层, 变量必须以$开头
// 变量可以直接参与算术运算: + - * / % 
$w:10px;

// 函数
// @function , @return 这样的指令 必须以@开头
@function calc_width( $width ){
    
    
  @return $width * 10;
}

.list{
    
    
  margin: $w;
  .good{
    
      // .list .good
    display: flex;
    .imgbox{
    
     // .list .good .imgbox
      width: calc_width($w); 
      margin-right: $w;
      img{
    
     // .list .good .imgbox img
        //width: 100%;
        width: calc_width($w);
      }
    }
    .text{
    
     // .list .good .text
      /* line-height: 30px; */
      .name{
    
     // .list .good .text .name
        font-weight: bold;
        &:hover{
    
     // .list .good .text .name:hover
          color: red;
        }
      }
      .price{
    
     // .list .good .text .price
        color: red;
      }
      .tags{
    
    
        font-size: 12px;
        span{
    
    
          display: inline-block;
          padding: 5px $w;
          background-color: #f5f5f5;
          border-radius: 5px;
          margin-right: $w; 
          &:nth-child(1){
    
     //.list .good .text .price span:nth-child(1)
            background-color: lightcoral;
            color: white;
          }
          &:nth-child(2){
    
     //.list .good .text .price span:nth-child(2)
            background-color: lightgreen;
            color: white;
          }
          &:nth-child(3){
    
     //.list .good .text .price span:nth-child(3)
            background-color: lightseagreen;
            color: white;
          }
        }
      }
    }
  }
}

4.sass和less的区别

不同之处

  1. less和sass的主要不同就是实现方式不同

    Sass是基于Ruby的,是在服务器端处理

    Less基于Javascript,是在客户端处理。

  2. less使用较sass简单

  3. sass功能比less强大

    • sass有变量和作用域

    • sass有函数的概念

    • 进程控制

      条件、循环遍历、继承、引用

    • 数据结构

      数组、map

  4. less和sass处理机制不一样

    前者是通过客户端处理的,后者是通过服务端处理。关于变量在less中是@,在sass中是用$

猜你喜欢

转载自blog.csdn.net/m0_53181852/article/details/127737688