热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Sass/Scss、Less是什么?

本文主要分享【】,技术文章【SassScss、Less是什么?】为【CRMEB】投稿,如果你遇到CRMEB,学习笔记相关问题,本文相关知识或能到你。Sass(SyntacticallyAw

本文主要分享【】,技术文章【Sass/Scss、Less 是什么?】为【CRMEB】投稿,如果你遇到CRMEB,学习笔记相关问题,本文相关知识或能到你。

Sass (Syntactically Awesome Stylesheets) 是一种动态样式语言,Sass 语法属于缩排语法,比 css 比多出好些功能 (如变量、嵌套、运算,混入 (Mixin)、继承、颜色处理,函数等),更容易阅读。

Sass 的缩排语法,对于写惯 css 前端的 web 开发者来说很不直观,也不能将 css 代码加入到 Sass 里面,因此 Sass 语法进行了改良,Sass 3 就变成了 Scss (Sassy CSS)。SCSS (Sassy CSS) 是 CSS 语法的扩展。这意味着每一个有效的 CSS 也是一个有效的 SCSS 语句,与原来的语法兼容,只是用 {} 取代了原来的缩进。

Less 也是一种动态样式语言。对 CSS 赋予了动态语言的特性,如变量,继承,运算, 函数. Less 既可以在客户端上运行 (支持 IE 6+, Webkit, Firefox),也可在服务端运行 (借助 Node.js)。

Sass 与 Less 区别

Sass/Scss、Less 是什么?

使用:

Less: https://less.bootcss.com/usage/

Sass: https://www.sass.hk/docs/

不同之处

1、Less 在 JS 上运行,Sass 在 Ruby 上使用。
Sass 有工具库 Compass, 简单说,Sass 和 Compass 的关系类似于像 Javascript 和 jQuery 的关系,Compass 在 Sass 的基础上,封装了一系列有用的模块和模板,补充强化了 Sass 的功能。

Less 有 UI 组件库 Bootstrap,Bootstrap 是 web 前端开发中一个比较有名的前端 UI 组件库,Bootstrap 的样式文件部分源码就是采用 Less 语法编写。

2、编写变量的方式不同。

Sass 使用 $,而 Less 使用 @。

//  Sass

$lightColor:#baf;

// Less

@lightColor:#baf;

3、Sass 支持条件语句,可以使用 if {} else {},for {} 循环等等。而 Less 不支持。

4、输出格式不一样

Less 无输出格式,Sass 可以使用特定的输出格式

nested:嵌套缩进的 css 代码expanded:展开的多行 css 代码compact:简洁格式的 css 代码compressed:压缩后的 css 代码

:nested

在执行监测 (编译) 命令时,可以指定输出格式为 nested:

sass --watch styles.scss:styles.css --style nested

nested 格式下,输出的 CSS 代码:

div {
   

  padding: 20px;

  margin: 20px; }

.one {
   

  background: red; }

.two {
   

  background: yellow; }

nested 是默认格式,可以不指定。

:expanded
展开格式看起来像开发人员手写的格式。

要将 CSS 输出设置为展开格式,可以使用如下命令:

sass --watch styles.scss:styles.css --style expanded

该格式下,输出的 CSS 代码:

div {
   

  padding: 20px;

  margin: 20px;

}

.one {
   

  background: red;

}

.two {
   

  background: yellow;

}

.three {
   

  background: #ff8000;

}
:compact

紧凑格式占用的空间要小得多,每个 CSS 选择符定义只占用一行。

要将 CSS 输出设置为紧凑格式,可以使用如下命令:

sass --watch styles.scss:styles.css --style compact
该格式下,输出的 CSS 代码:

div {
    padding: 20px; margin: 20px; }

.one {
    background: red; }

.two {
    background: yellow; }

.three {
    background: #ff8000; }

:compressed

压缩格式占用尽可能少的空间,选择符定义不换行,文件最小,一般用于生产版本。

要将 CSS 输出设置为压缩格式,可以使用如下命令:

sass --watch styles.scss:styles.css --style compressed

该格式下,输出的 CSS 代码:

div{
   padding:20px;margin:20px}.one{
   background:red}.two{
   background:ye..........

5、引入外部 CSS 文件方法命名有一点不一样

引入外部 CSS 文件

scss 引用的外部文件命名必须以_开头,如下例所示:

其中_test1.scss 文件名如果以下划线开头的话,Sass 会认为该文件是一个引用文件,不会将其编译为 css 文件。

1.混合不同 Mixins
Sass

 /*声明一个Mixin叫作“error”*/

@mixin error($borderWidth:2px){
   

  border:$borderWidth solid #f00;

  color: #f00;

}

/*调用error Mixins*/

.generic-error {
   

  @include error();/*直接调用error mixins*/

}

Less

/*声明一个Mixin叫作“error”*/

.error(@borderWidth:2px){
   

  border:@borderWidth solid #f00;

  color: #f00;

}

/*调用error Mixins*/

.generic-error {
   

  .error();/*直接调用error mixins*/

}

7。继承方法不一样

sass的继承:@extend

.block {
   

  margin: 10px 5px;

  padding: 2px;

}

p {
   

  @extend .block;/*继承.block选择器下所有样式*/

  border: 1px solid #eee;

}

less的继承:类似于mixins .block

.block {
   

  margin: 10px 5px;

  padding: 2px;

}

p {
   

  .block;/*继承.block选择器下所有样式*/

  border: 1px solid #eee;

}
相同之处

Less 和 Sass 在语法上有些共性,比如下面这些:

1、混入 (Mixins)——class 中的 class;

2、参数混入 —— 可以传递参数的 class,就像函数一样;

3、嵌套规则 ——Class 中嵌套 class,从而减少重复的代码;

4、运算 ——CSS 中用上数学;

5、颜色功能 —— 可以编辑颜色;

6、名字空间 (namespace)—— 分组样式,从而可以被调用;

7、作用域 —— 局部修改样式;

8、Javascript 赋值 —— 在 CSS 中使用 Javascript 表达式赋值。

为什么选择使用 Sass 而不是 Less?

1、Sass 在市面上有一些成熟的框架,比如说 Compass,而且有很多框架也在使用 Sass,比如说 Foundation。

2、就国外讨论的热度来说,Sass 绝对优于 LESS。

3、就学习教程来说,Sass 的教程要优于 LESS。在国内 LESS 集中的教程是 LESS 中文官网,而 Sass 的中文教程,慢慢在国内也较为普遍。

4、Sass 也是成熟的 CSS 预处理器之一,而且有一个稳定,强大的团队在维护。

5、同时还有 Scss 对 sass 语法进行了改良,Sass 3 就变成了 Scss (sassy css)。与原来的语法兼容,只是用 {} 取代了原来的缩进。

6、bootstrap(Web 框架)最新推出的版本 4,使用的就是 Sass。

源码附件已经打包好上传到百度云了,大家自行下载即可~

链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27
提取码: yu27
百度云链接不稳定,随时可能会失效,大家抓紧保存哈。

如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~

开源地址

码云地址:
https://gitee.com/ZhongBangKeJi/crmeb_java

Github 地址:
https://gitee.com/ZhongBangKeJi/crmeb_java

本文《Sass/Scss、Less 是什么?》版权归CRMEB所有,引用Sass/Scss、Less 是什么?需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 前端开发:从底层到顶端的行业现象解析
    在编程领域,鄙视链现象屡见不鲜,从C语言到Java、.NET等,每个技术栈都有其独特地位。然而,前端开发者尽管常处于鄙视链底端,却在市场需求中备受青睐。本文深入探讨这一现象,并分析前端工程师如何在竞争激烈的市场中脱颖而出。 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • 本文深入探讨了Redis中的两种主要持久化方式——RDB(Redis Database)和AOF(Append Only File),并详细解析了两者的实现机制、优缺点以及在实际应用中的选择策略。 ... [详细]
  • 本文深入探讨了 Prototype.js 框架及其与 JavaScript 原生 toString() 方法之间的区别,适合对前端开发感兴趣的开发者阅读。文章将帮助读者理解两者在功能实现和应用场景上的不同,从而更好地利用这些工具进行高效编程。 ... [详细]
  • 腾讯视频 Node.js 服务国庆阅兵直播高并发实战
    本文分享了腾讯视频团队在国庆阅兵直播项目中,如何利用Node.js服务成功应对2.38亿次观看的高并发挑战。文章将从服务架构、可用性保障、缓存策略、日志与告警等方面详细解析。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • Python入门:第一天准备与安装
    本文详细介绍了Python编程语言的基础知识和安装步骤,帮助初学者快速上手。涵盖Python的特点、应用场景以及Windows环境下Python和PyCharm的安装方法。 ... [详细]
  • Python 异步编程:ASGI 服务器与框架详解
    自 Python 3.5 引入 async/await 语法以来,异步编程迅速崛起,吸引了大量开发者的关注。本文将深入探讨 ASGI(异步服务器网关接口)及其在现代 Python Web 开发中的应用,介绍主流的 ASGI 服务器和框架。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
author-avatar
干杯随风一刀_893
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有