当前位置: 首页 > news >正文

【Css】Less和Sass的区别:

文章目录

        • 一、定义:
            • 【1】Less
            • 【2】Sass
        • 二、相同之处:
        • 三、区别:
            • 【1】实现方式:
            • 【2】实现方式:
            • 【3】混合(Mixins):
            • 【4】解析方式:
            • 【5】变量的作用域:
            • 【6】比起Less


一、定义:

【1】Less

Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作主题、扩充。Less 可以运行在 Node 或浏览器端。

【2】Sass

Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目。

二、相同之处:

###### 【1】变量:
可以单独定义一系列通用的样式,在需要的时候进行调用。
###### 【2】混合(Mixins):
class中的class(讲一个class引入到另一个class,实现class与class之间的继承),还可以带参数的混合,就像函数一样。
###### 【3】嵌套:
class中嵌套class,从而减少代码的重复。
###### 【4】运算:
提供了加减乘除四则运算,可以做属性值可颜色的运算。

三、区别:

【1】实现方式:

Less是基于JavaScript,是在客户端进行处理的;
Sass是基于Ruby,是在服务器端进行处理的。

【2】实现方式:

Less定义变量时使用前缀:@
Sass定义变量时使用前缀:$

//Less定义变量: 
@color: #4D926F;
header {color: @color;
}//Sass定义变量:
$blue : #1875e7; 
div {color : $blue;
}
【3】混合(Mixins):

Less中使用混合时,只需在classB中根据classA的命名来是用;
Sass中首先在定义混合时需要使用@mixin命令,其次在调用时需要使用@include命令来引入之前定义的混合。

//Less中的混合: 
.rounded-corners(@radius: 5px){     -webkit-border-radius: @radius; -moz-border-radius: @radius; -ms-border-radius: @radius; -o-border-radius: @radius; border-radius: @radius; 
}header {.rounded-corners;
}
footer {.rounded-corners(10px);
}//Sass中的混合: 
@mixin left($value: 10px) {     float: left;     margin-right: $value;   
}div {@include left(20px);
}
【4】解析方式:

Less可以向上/向下解析
Sass只能向上解析

【5】变量的作用域:

Less中的变量有全局和局部之分
Sass可以变量可以理解为都是全局的,但可以通过在变量后面跟!default,在引入Sass文件之前改变变量的属性值来解决这一问题。

//Less: 
@width:100px; 
h1{ @width:200px; width:@width; 
} 
h2{ width:@width; 
}
编译后: h1 { width: 200px; } h2 { width: 100px; }//Sass:
$borderColor:red !default; 
.border{ border:1px solid $borderColor;
}
编译后: .border{ border: 1px solid red; } 
【6】比起Less

Sass中增加了条件语句(if、if…else)和循环语句(for循环、while循环和each循环)还有自定义函数

### 【1】if条件句:
p {@if 1 + 1 == 2 { border: 1px solid; }@if 5 < 3 { border: 2px dotted; }
}### 【2】if...else条件句:
@if lightness($color) > 30% {background-color: #000;
} @else {background-color: #fff;
}### 【3】for循环:
@for $i from 1 to 10 {.border-#{$i} {border: #{$i}px solid blue;}
}### 【4】while循环:
$i: 6;
@while $i > 0 {.item-#{$i} { width: 2em * $i; }$i: $i - 2;
}### 【5】each循环,类似于for循环:
@each $member in a, b, c, d {.#{$member} {background-image: url("/image/#{$member}.jpg");}
}### 【6】自定义函数:
@function double($n) {@return $n * 2;
}#sidebar {width: double(5px);
}
http://www.lryc.cn/news/149922.html

相关文章:

  • 八、MySQL(DML)如何修改表中的数据?
  • Python使用 YOLO_NAS_S 模型进行目标检测并保存预测到的主体图片
  • <AIX>《AIX RAID 操作之LV逻辑卷镜像制作,即lvcopy操作》
  • JSX底层渲染机制
  • 2023_Spark_实验六:Scala面向对象部分演示(二)(IDEA开发)
  • ArcGIS美化科研论文地图(利用在线底图)
  • vue项目静态文件资源下载
  • Apache Hudi初探(三)(与flink的结合)--flink写hudi的操作(真正的写数据)
  • 解释 Git 的基本概念和使用方式(InsCode AI 创作助手)
  • 【QT】信号和槽(15)
  • EFLK日志平台(filebeat-->kafka-->logstash-->es-->kiabana)
  • C盘扩容遇到的问题(BitLocker解密、)
  • ShardingSphere——柔性事务SEATA原理
  • Introducing GlobalPlatform(一篇了解GP)
  • Ubuntu 18.04上无法播放MP4格式视频解决办法
  • 科技驱动产业升级:浅谈制造型企业对MES系统的应用
  • 智能化新十年,“全栈智能”定义行业“Copilot智能助手”
  • Docker资源控制cgroups
  • 通过python 获取当前局域网内存在的IP和MAC
  • 解决D盘的类型不是基本,而是动态的问题
  • 如何判断自己的qt版本呢?
  • 【文心一言大模型插件制作初体验】制作面试错题本大模型插件
  • ROS 2官方文档(基于humble版本)学习笔记(二)
  • excel中公式结合实际的数据提取出公式计算的分支
  • 3D模型优化实战:LowPoly、纹理烘焙及格式转换
  • genome comparison commend 2 MCMCtree
  • Linux安装JenkinsCLI
  • Midjourney学习(一)prompt的基础
  • 12 权重衰退
  • 简化测试流程,提供卓越服务:TestComplete+Salesforce满足不断发展的企业的需求