Scss和less预处理器的使用对比

变量(Variables)

scss变量标识符是:$

$primary-color: red;
div {background: $primary-color;
}

less变量标识符:@

@primary-color: red;
div {background: @primary-color;
}

变量名称规则:scss下划线和横线相互兼容, less中定义的名称和使用名称保持一致,否则报错

嵌套(Nesting)

#content {color: #333 ;p {margin-bottom: 1.4em; a {vertical-align: top;&:hover {color:#fff;}}} 
}

1.内层的样式将它外层的选择器作为父选择器
2.父选择器 &编译后的 CSS 文件中 &将被替换成嵌套外层的父选择器(一般在伪类中)
3.属性嵌套

.aside { font: { family: '微软雅黑'; size:  30px;weight:  bold; }}

混合(Mixin)

混合(Mixin)是一种将一组属性从一个规则集包含(或混入)到另一个规则集的方法。(大段大段的重用样式)

// Scss中
@mixin   bordered { border: 1px dotted  black;background:#fff;  color: #666;                                                                                   
}
.menu  { font-size:16px;@include  bordered; 
} 
// less中
.bordered { border: 1px dotted  black;background:#fff;       color: #666;                                                            
}
.menu  { font-size:16px;.bordered(); 
} 

混合-传参(Mixins)

// Scss中
@mixin linkColors($normal, $hover, $visited) {                                         color: $normal;&:hover { color: $hover; } &:visited {color: $visited; }}
a { @include linkColors(blue, red, green); 
}
// Less中
. base-colors(@bg,@color) {color: @color; background: @bg;
} 
.class1 {  .base-colors(#fff,#33acfe); 
} 

延伸(extend)

// Scss中
.error { border: 1px #f00;background-color: #fdd; 
} 
.seriousError {@extend .error;border-width: 3px;}
// Less中
.danger {color: red; 
}
#menu {&:extend(.danger); background: blue; 
} 

Mixin和extend效果相似,使用区别是:
1.extend命令不够灵活。不能向它传递参数,它原本是啥样就是啥样.
2. mixin主要的优势就是它能够接受参数。在大作数情况下mixin会比extend更好。

运算(Operations)

算术运算符 +、-、*、/ 可以对任何数字、颜色或变量进行运算。如果可能的话,算术运算符在加、减或比较之前会进行单位换算。计算的结果以最左侧操作数的单位类型为准。如果单位换算无效或失去意义,则忽略单位(如px和cm之间)。
以下为less举例:
@conversion1: 5cm + 10mm; // 6cm,所有操作数被转换成相同的单位
@conversion2: 2 - 3cm - 5mm; // 结果是 -1.5cm
@base: 5%;
@filler: @base * 2; // 10%
@other: @base/2; // 2.5%
@color: #224488 / 2; //#112244

函数(function)

Scss可自定义函数,无内置函数;
使用@function定义函数,@return返回结果;调用时可传参;

$grid-width: 40px;
@function   gridWidth($n) {@return  $n * $grid-width;} 
#sidebar {width: gridWidth(5);}

Less本身无自定义函数,有内置函数;

作用域(scope)

Scss和Less 中的作用域与 CSS 中的作用域非常类似。(从自身往上找)
例:在less中

@primary-color: red;#page { @primary-color:blue ;#header {color: @primary-color; // blue;}}

导入(import)

Scss扩展名省略(.scss和.sass)
@import “public”; //public.scss 或public.sass
Less扩展名省略(.less)
@import “public”; //public.less

注释(Comments)

Scss和less 均支持 CSS 多行注释 /* */和单行注释 //,多行注释会 被完整输出到编译后的 CSS 文件中,而单行注释编译后则不显示;

映射(maps)-less独有

将混合(mixins)和规则集(rulesets)作为一组值的映射(map)使用(less3.5后)。

#colors() {primary: blue; secondary: green; 
}.button { color: #colors[primary]; border: 1px solid #colors[secondary]; 
}

其它区别

编译环境不一样: Sass的安装需要Ruby环境,是在服务端处理的,而Less是需要引入less.js来处理Less代码输出css到浏览器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/216985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

磁力计LIS2MDL开发(1)----轮询获取磁力计数据

磁力计LIS2MDL开发.1--轮询获取磁力计数据 概述视频教学样品申请源码下载通信模式速率生成STM32CUBEMX串口配置IIC配置CS设置串口重定向参考程序初始换管脚获取ID复位操作BDU设置设置速率启用偏移消除开启温度补偿设置为连续模式轮询读取数据主程序演示 概述 本文将介绍如何使…

[网络安全]批处理(脚本)编写

Windows DOS命令Linux 一.作用: 自上而下成批次处理每一条命令,直到执行到最后一条 二.如何创建批处理: 扩展名:.bat创建办法:新建一个记事本,把扩展名改为 .bat 三.编辑方法: 右击 -编辑 1).一行一个命令 四.批处理命令: pause 暂停 (及时后面有命令,也不执行)echo …

Knowledge Graph知识图谱—9. Data Quality and Linking

9. Data Quality and Linking 9.1 How well are the linked open data in practice? Linked Open Vocabularies(LOV) project – analyze usage of vocabularies 9.2 Quality Linked Data Conformance vs. Quality Conformance: – i.e., following standards and best prac…

【git push ERROR: commit id: missing Change-Id in message footer】

使用 gerrit 后,提交代码会出现如下截图问题: 临时解决: step1: 把上面红色的那条gitidir复制下来执行下: step2:执行下面的命令会添加change_id git commit --amendstep3: 然后推送代码到服务器上 git push origin HEAD:refs/fo…

事件驱动架构 vs. RESTful架构:通信模式对比与选择

1. 通信风格 事件驱动架构(EDA) 是一种异步通信风格,组件之间通过产生和消费事件进行通信。 事件是表示系统中重大变化或事件的消息,并分发给感兴趣的组件。这种通信模型允许系统的不同部分之间进行解耦和动态交互。 组件充当事件…

新手上路:盘点「性能测试」必须掌握的技术点

前段时间,有一些小伙伴提出希望我们推送点性能测试的技术干货。所以,小编今天通过上网查资料,结合项目实操过程中的一些问题,总结了一些关于性能测试的内容,希望是大家想要了解的内容哈。 1、性能测试的目的 首先&am…

Java中JDK类库常用的6种设计模式

Java中JDK类库常用的6种设计模式:1、抽象工厂。2、建造者模式。3、工厂模式。4、原型模式。5、单例模式。6、适配器模式。 1、抽象工厂 javax.xml.parsers.DocumentBuilderFactory抽象类。 public static DocumentBuilderFactory newInstance()方法。 类功能&…

.Net中的集合

所有的集合都是继承自IEnumerable。集合总体可以分为以下几类:关联/非关联型集合,顺序/随机访问集合,顺序/无序集合,泛型/非泛型集合,线程集合。 各集合类底层接口关系图 泛型与非泛型集合类的分析 泛型集合是类型安…

离散数学 速成

文章目录 一、命题逻辑的基本概念1. 命题2. 命题联结词 二、命题逻辑等值演算1. 等值式🌰子 2. 析取范式和合取范式🌰子 3. 主析取范式和主合取范式🌰子 4. 联结词的完备集🌰子 三、命题逻辑的推理理论🌰子 一、命题逻…

复制时源数据中null值不复制到

问题场景 例如有个对象要新增,后面的新增,我们希望判断一下是否有这个数据,如果有,则对上次提交的完善。如果没有,就新增。那么用其他方式实现很麻烦,本身的BeanUtils.copyProperties也是不大支持。 我们…

Java - Math类的常用方法及练习

目录 1.1 概述 1.2 常用方法 ❓面试题:为啥Math.round(-1.5)-1? 1.1 概述 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象…

优雅玩转实验室服务器(三)vscode is all you need

在前两章解决了传输问题和连接问题后,我们紧接着遇到一个新的需求:我们需要coding呀,你当然可以说,我们可以用vim和对应的插件来搭建一个IDE呀,fine,我甚至可以给你推荐如下的教程: Vim 到底可…

oracle详细安装教程(附带百度网盘资源)

一,下载安装包途径 1.官网 Unauthorized Request 2.百度网盘分析 https://pan.baidu.com/s/1n221gdTK0Fcho839oRab9g 提取码1q2w 二,安装教程 1.下载完安装包后点击 setup.exe 如果出现一下的问题,使用windows10等系统安装oracle 11g等版本的数据库…

实验7:索引和视图定义

【实验目的】 1、了解索引和视图的含义 2、熟悉索引和视图的创建规则 3、掌握索引和视图的创建和管理 【实验设备及器材】 1、硬件:PC机; 2、软件:(1)Windows7; (2)Microsoft SQL Server 2012。 【主要内容】 索引的创建、删除、重建…

【acwing】92. 递归实现指数型枚举

穿越隧道 递归枚举、位运算 方法① 从1到n&#xff0c;顺序访问每位数&#xff0c;是否选择&#xff0c;每位数有两种状态&#xff0c;选1或不选0. AC代码如下&#xff1a; #include <iostream> using namespace std;const int N 100; // bool st[N]; int n;void dfs(in…

【Oracle】backup备份时报错ORA-19809,ORA-9804

Oracle备份数据库时报错 ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 10305536 bytes disk space from 4385144832 limit 1.清理过时的备份&#xff1a; 使用RMAN删除不再需要的过时备份&#xff0c;以释放空间。执行以下命令&#xff1a; DEL…

Hadoop高可用(主备切换)---配合Zookeeper

1. Hadoop高可用(Hadoop High Availability)概述 HA(High Available), 高可用&#xff0c;是保证业务连续性的有效解决方案&#xff0c;一般有两个或两个以上的节点&#xff0c;分为活动节点&#xff08;Active&#xff09;及备用节点&#xff08;Standby&#xff09;。通常把…

【Qt开发流程】之2D绘图1:概述及基本绘制与填充和渐变填充

概述 Qt的绘图系统可以使用相同的API在屏幕和打印设备上进行绘图&#xff0c;并且主要基于QPainter, QPaintDevice和QPaintEngine类。 QPainter用于执行绘图操作&#xff0c;QPaintDevice是一个二维空间的抽象&#xff0c;可以使用QPainter在其上绘制&#xff0c;QPaintEngine…

C++的左值、右值、左值引用和右值引用

目录 左值和右值左值引用右值引用 参考《现代C语言核心特性解析》 以下加粗文字都是摘自本书。 左值和右值 左值和右值得概念在C98就出现了&#xff0c;根据字面意思理解就是&#xff1a;左值是表达式等号左边的值&#xff0c;右值是表达式等号右边的值。 int x 1; int y …

《天天爱科学》期刊国家级知网投稿

《天天爱科学》国家级期刊知网收录&#xff0c;投稿方向&#xff1a;幼儿教育、基础教育文章&#xff0c;不收案例分析、教学设计、图表讲解、例题分析。 刊名&#xff1a;天天爱科学 主管单位&#xff1a;中国出版传媒股份有限公司 主办单位&#xff1a;人民文学出版社有限…