sass和less(六十四)

65 篇文章 3 订阅
30 篇文章 1 订阅

sass和less介绍和环境搭建

Sass和Less都属于预处理器,CSS预处理器定义了,一种新的语言,其基本思想是,用一种专门的编程语言,为CSS增加了一些编程特性,如:变量、语句、函数、继承等概念。将CSS作为目标生成文件,然后开发者就只要用这种语言进行CSS的编码工作
Less:

官网地址:http://lesscss.org/

Vscode插件:Easy Less 直接在扩展安装就行

Hbuilder-x插件:工具->插件安装->安装新插件->前往插件市场安装->选择less安装->安装成功(可以返回刚刚的插件安装查看已安装插件是否安装成功,需要等待一下。或者查看右下角提示)。

Hbuilder-x插件:实现热更新功能,工具->外部命令插件配置->compile-less->package.json->更改:“onDidSaveExecution”: true->保存,关闭重启hbuilder

如果Hbuilder-x插件安装过程中出现错误:请查看https://ask.dcloud.net.cn/m/article/35468
Sass:
官网地址:http://sass-lang.com/

VSCode插件:Easy Sass

Hbuilder-x插件:sass(与less安装一样)

sass和less语法

分号:

分号一定不能少,除了{}后面可以不用分号和{}内部最后一个表达式可以不使用,其他表达式都要使用

注释(无差异)

// 单行注释不会被编译出来的。

/* …*/ 多行注释,就是CSS的注释方式 。会被编译出来的
sass:
在这里插入图片描述
less:
在这里插入图片描述

变量,插值,作用域(有差异

变量:

sass:使用$符号 $name: 变量值;
在这里插入图片描述
less:使用@符号 @name:变量值;
在这里插入图片描述

插值:

sass:

定义插值:$name:值; 使用:#{$name}
在这里插入图片描述
less:

定义插值:@name:值; 使用:@{name} 随便在任何内容中插入(包括属性,标签…),只要使用规范就行
在这里插入图片描述

作用域:

sass:向上查找最近原则(不存在变量提升)
在这里插入图片描述
less:上下查找最近原则(变量提升)
在这里插入图片描述

选择器嵌套(无区别),伪类嵌套(无区别),属性嵌套(Sass)

选择器嵌套

sass选择器嵌套:
在这里插入图片描述

Less选择器嵌套:
在这里插入图片描述

伪类嵌套

sass伪类嵌套:
在这里插入图片描述
less伪类嵌套:
在这里插入图片描述
sass和less上面存在的一个小问题,就是我们平常写伪类一般是ul:hover没有空格的,但是上面两张图都存在空格。可以使用&符号去除空格(sass和less一样)
在这里插入图片描述

sass属性嵌套

sass属性嵌套:(仅sass可用) 用 :隔开
在这里插入图片描述

运算、单位、转义、颜色

单位:(有区别)

less:当两个数进行运算时,会以第一个数的单位为准
在这里插入图片描述
sass:当单位不同时是不可以进行计算的,否则控制台会报错
在这里插入图片描述

转义:(有区别)

在这里插入图片描述
如果想要实现除法,那么可以将表达式用括号()括起来。
注意:一个表达式只用写一个单位,多个单位,会直接忽略单位,而只有单纯数值
在这里插入图片描述
less:使用 ~ ’ … ’ 保存计算符号,不进行计算
注:font比较特殊,中间出现/不会被识别为 运算符号,只会识别为分割线
在这里插入图片描述

颜色:(无区别)

sass:
在这里插入图片描述
less:颜色数值也可以进行运算
在这里插入图片描述

函数:有许多内置方法是一样的,但也有一些区别比如random()只在sass起作用

sass:
在这里插入图片描述
less:
在这里插入图片描述
sass自定义函数(我在hbulid实现不了,好像他的插件不支持,所以只能够用vscode给大家演示了)
在这里插入图片描述
less不具备自定义函数功能

混入,命名空间(Less),继承

混入

sass:定义 @mixin name{} ; 引入@include name

混入的css样式不会被渲染在css页面当中,()还能实现传参功能
在这里插入图片描述
less:

不带括号和带括号的区别在于:不带括号定义时的混入会渲染在css文件中,没带括号就不会将css中渲染出来没并且还能传参。
在这里插入图片描述

命名空间:(仅less)

在这里插入图片描述

继承:(区别)

混入存在一个问题就是,如果多个选择器混入都是同一个,那么在生成的css文件中,也会形成多个选择器分开。造成代码冗余。
在这里插入图片描述
因此我们要解决整个问题就是就是可以选择用让他们变成组合选择器。

sass:定义.name{} 引入 @extend .name
在这里插入图片描述
如果不想在css文件中引入混入的选择器,那么可以在scss文件中将选择器 .换成%
在这里插入图片描述
Less: 定义:.name{} 引入 &:extend(name)
在这里插入图片描述
less无法在css文中忽略让继承的混入忽略。

合并(有区别),媒体查询(无区别)

合并

sass:

逗号合并 定义: $name : (键名:属性值,键名:属性值…); 引入:属性:map-values($name)
在这里插入图片描述
空格合并: 定义: $name : (键名:属性值,键名:属性值…); 引入 : 属性名:zip(map-values($name)...)别忘了分号和引入是那三个点
在这里插入图片描述
less:逗号合并 属性名+:属性值;空格合并 属性名+_:属性值
在这里插入图片描述

媒体查询:(无区别)

在这里插入图片描述

条件(有区别),循环

条件(有区别)

sass:@if @else
在这里插入图片描述
less: .name when(){}
在这里插入图片描述

循环:

sass:@for $变量名 from 起始数值 through 结束数值(包含){…}
在这里插入图片描述
less:递归
在这里插入图片描述
导入(无区别)

css本身是不具备模块化的,但是像sass和less能够将某个功能写成一个单独的文件,然后可以互相引入。实现多功能合并

我们可以在html引入其他的css文件,但是无法在css文件中引入其他的css文件。但是sass和less可以实现
sass:
在这里插入图片描述
less:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值