Sass 和 SCSS

news2025/7/16 13:02:39

▣Sass (Syntactically Awesome StyleSheets),是由buby语言编写的一款css预处理语言,和html一样有严格的缩进风格,和css编写规范有着很大的出入,是不使用花括号和分号的,所以不被广为接受。 Sass 是一款强化 CSS 的辅助工具,是对 CSS 的扩展,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、继承(extend)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目, 其后缀是.sass。
▣Sass允许嵌套css选择器,嵌套方式与 HTML 的视觉层次结构相同。请注意,过度嵌套的规则 将导致过度限定的 CSS,这些 CSS 可能很难维护,并且 通常被认为是不好的做法。

▣SASS(Syntactically Awesome Style Sheets)是一种由 Hampton Catlin 设计、Chris Eppstein 和 Natalie Weizenbaum 开发的样式表语言。 它是一种预处理器脚本语言,将被编译或解释为 CSS。 Sass Script 本身就是一种脚本语言。 它的 typing 规则是动态的

▣SCSS (Sassy CSS),一款css预处理语言,SCSS 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。也就是说,任何标准的 CSS3 样式表都是具有相同语义的有效的 SCSS 文件。SCSS 需要使用分号和花括号而不是换行和缩进。SCSS 对空白符号不敏感,其实就和css3语法一样,其后缀名是分别为 .scss。

▣SCSS 通常被称为 Sassy CSS,它是作为 SASS(Syntactically Awesome Style Sheets)的主要语法引入的,它建立在现有的 CSS 语法之上。 它使用分号和括号,如 CSS(级联样式表)。 SCSS 是 CSS 的超集,即所有 CSS 功能都将在 SCSS 中可用,并且包含 SASS(Syntactically Awesome Style Sheets)的一些功能。 SCSS 使任何 CSS 术语都有效。

sass和scss的异同和区别

同:sass和scss其实是一样的css预处理语言(也是对应的文件后缀名),它们的语法功能比css更强大。

ps:预处理语言使用是:开发时用预处理语言,在打包上线时,用webpack再配合loader工具给转成css(Cascading Style Sheets)给浏览器使用。

异:SCSS 是 Sass 3 引入新的语法,其后缀名是分别为 .sass和.scss两种。
SASS版本3.0之前的后缀名为.sass,而版本3.0之后的后缀名.scss。
两者是有不同的,继sass之后scss的编写规范基本和css一致,sass时代是有严格的缩进规范并且没有‘{}’和‘;’。我们在实际开发过程中,scss是常用写法。
而scss则和css的规范是一致的。

9大区别

区别1

SASS是Syntactically Awesome Style Sheets,是CSS的扩展,提供嵌套规则、继承、Mixins等特性,而SCSS是Sassy Cascaded Style Sheets,与CSS类似,填补了CSS与SASS之间的空白和不兼容。 它是在 MIT 许可下获得许可的。它首次出现在2006年。

区别2

SASS 更易于使用且语法更简单,因此无需使用分号、曲线、大括号等,而 SCSS 与 CSS 完全兼容,文件扩展名为 .scss 类型。

区别3

SASS 具有最好的编码标准和良好的官方文档的特点,而 SCSS 更容易学习开发代码。

区别4

SASS 基于 javascript 并支持不同的语言扩展,拥有自己的语法、开源 CSS 预处理器和高级功能,例如控制和指令及其库。

区别5

SASS 更难通过重写代码与现有 CSS 项目集成,而 SCSS 通过采样添加新代码而不是重写现有代码库更容易与现有代码库集成。

区别6

SASS 更易于使用、阅读和编写,而 SCSS 在实现代码方面更具逻辑性和复杂性。

区别7

SASS 变量将以美元 ($) 符号开头,而 SCSS 具有模块化功能,可以通过使用某种注释以更加模块化的方式组织代码。

css样式 :

 转换成scss样式:

区别8

SASS 具有高级语法功能,并且其文件具有 .sass 扩展名,而 SCSS 具有类似每个有效 CSS 文件都是 SCSS 文件的功能。

区别9

SASS 与 Ruby 相似,安装需要使用 Ruby,没有严格的代码缩进,而 SCSS 与 CSS 相似,无需任何额外安装或配置即可轻松使用。

区别10

SASS 具有可在 CSS 文件的不同位置使用的局部和全局变量,而 SCSS 具有不同的变量,例如颜色变量,这些变量可以稍后在样式表中使用。SCSS据有模块化开发的特性。

 新建base.scss,并定义变量

$base-color : red;

在test.scss中引入base.scss

import './base.scss';
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  background-color: $base-color;
  color: $color;
  height: 660px;
  width: 100%;
}

区别11

SASS 具有嵌套功能,可以将 CSS 选择器嵌套显示在 HTML 中,并且难以维护较长的分层嵌套 CSS,而 SCSS 可以处理多个类和不同的嵌套样式。

css样式:

scss样式:

在嵌套 CSS 规则时,有时也需要直接使用嵌套外层的父选择器,例如,当给某个元素设定 hover 样式时,或者当 body 元素有某个 classname 时,可以用 & 代表嵌套规则外层的父选择器。

区别12

SASS 具有文档样式,它比 CSS 更好,并且具有颜色、属性和参数列表的操作功能,而 SCSS 语法具有边距、列表样式、填充、显示等。

区别13

SASS 具有控制指令、功能指令、Mixins 并具有可扩展的特性,而 SCSS 可以与 SASS 一起使用来表示 CSS 类似的特性。

mixins混入,是代码复用的方式
定义格式:@mixin 名称 { 代码 }
使用格式:include 名称

区别14

在最初的开发之后,SASS 扩展到 SassScript。 它支持跨平台操作系统。 它受到CSS、LESS、YAML等的影响。这个SASS的文件扩展名是.scss和.sass,它的官方实现也是一个使用Ruby开发的开源项目。

结论

SASS 与 SCSS 都是 CSS 预处理器,它们非常有用,可包含在基于 CSS 的 UI(用户界面)或前端框架中以简化开发。 这些 SASS 与 SCSS 框架在以编程方式利用强大的 CSS 功能时在高级别的 CSS 功能方面提供了强大的功能。 SASS 是一种 CSS 扩展,其中大部分功能都将被扩展,而 SCSS 是 CSS 的一种超集,其中 CSS 的所有功能都将在 SCSS 中。 预处理器的选择取决于通过以有效的方式做出权衡选择来使应用程序高效工作所需的功能和特性。

与SCSS相比,SASS更易于使用并且需要更少的语法或配置,推荐用于需要更快开发范围和更容易开发复杂组件的较大应用程序的情况,而SCSS可以用于优化Mixin特性的情况,以及许多其他有效技术。

简言之可以理解scss是sass的一个升级版本,完全兼容sass之前的功能,又有了些新增能力。语法形式上有些许不同,最主要的就是sass是靠缩进表示嵌套关系,scss是花括号

//sass 太费眼了
.father
    width:100px;
    .son
        width:50px;
//scss
.father{
    width:100px;
    .son{
        width:50px;
    }
}

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

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

相关文章

使用Nodejs搭建HTTP服务,并实现公网远程访问「内网穿透」

文章目录前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口5.固定公网地址前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation(原…

微信小程序|基于小程序+云开发制作一个菜谱小程序

今天吃什么?这是一个让强迫症左右为难的问题,跟随此文基于小程序+云开发制作一个菜谱小程序,根据现有食材一键生成菜谱,省心又省力。 一、小程序1. 创建小程序</

【python】喜欢XJJ?这不得来一波大采集?

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 俗话说的好&#xff1a;技能学了~就要用在自己喜欢得东西上&#xff01;&#xff01; 这我不得听个话~我喜欢小姐姐&#xff0c;跳舞的小姐姐 这不得用python把小姐姐舞采集下来~嘿嘿嘿 完整源码、素材皆可点击文章下方名片…

Java web学生信息管理系统(jsp)

&#x1f95e;目录 &#x1f36c;1 概述 1.1课程设计目的 1.2预备知识 JAVAWeb&#xff1a; MySQL&#xff1a; JSP&#xff1a; 1.3实训的内容和要求 &#x1f36c;2 需求分析 2.1系统目标 2.2功能分析&#xff1a; 2.3开发环境&#xff1a; &#x1f36c;3 设计步…

大数据热点城市波动图案例【CSS3实现 + 原理分析 + 源码获取】

一&#xff1a;案例效果 本次案例我们分析一下数据可视化页面最常见的热点图是如何实现的&#xff0c;其原理并不复杂&#xff0c;只需要用到CSS3动画属性 animation 以及 keyframe 关键帧即可&#xff0c;重点是向外扩散的环如何布局比较合适&#xff0c;以及每个环怎么扩散何…

HTML 5标签搭建页面结构--1

本文标签: HTML基本语法 排版标签 媒体标签 链接标签 文章目录 前言 一、基础认识 1.认识网页 2.微博标准 3.web标准的构成 4.小结 二、HTML基本结构解读 2.HTML标签及结构 1.标签的结构: 2.排版标签: 2.文本格式化标签: 3.媒体标签: 1.图像相关标签: 2.图片标签的 title …

JavaScript-百炼成仙(第1节掌握JavaScript基础1.1-1.21)

文章目录1.1 第一章 初入宗门1.2 第二章 直接量1.3 第三章 数据类型1.4 第四章 数据类型扩展内容:1.5 第五章 基础考核1.6 第六章 何老1.7 第七章 对象数据类型1.8 第八章 对象的取值1.9 第九章 循环遍历的奥妙小结&#xff1a;For 循环1.10 第十章 对象内容的遍历1.11 第十一章…

30个题型+代码(冲刺2023蓝桥杯)(上)

愿意的可以跟我一起刷&#xff0c;每个类型做1~5题 &#xff0c;4月前还可以回来系统复习 目录 &#x1f34e;注意 &#x1f33c;前言 &#x1f33c;一&#xff0c;前缀和 &#x1f44a;&#xff08;一&#xff09;3956. 截断数组 &#x1f333;Time Limit Exceeded &a…

如何用python代码,更改照片尺寸,以及更换照片底色

前言 python浅浅替代ps&#xff1f;如何用代码来p证件照并且更换底色&#xff1f; 唉&#xff0c;有个小姐姐给我扔了张照片&#xff0c;叫我帮忙给她搞成证件照的尺寸还得换底色&#xff0c;她说自己忙的很 可惜电脑上没有ps只有pycharm&#xff0c;没得办法只能来试试看代…

没有关系的话,那就去建立关系吧

今天给大家分享一道链表的好题--链表的深度拷贝&#xff0c;学会这道题&#xff0c;你的链表就可以达到优秀的水平了。力扣 先来理解一下题目意思&#xff0c;即建立一个新的单向链表&#xff0c;里面每个结点的值与对应的原链表相同&#xff0c;并且random指针也要指向新链表中…

vite基础使用及相关配置

前言 这篇文章主要是记录前段时间公司里以vite构建的一个小项目&#xff08;前端界面不多&#xff0c;主要功能及相关配置是在后端&#xff09;&#xff0c;挺简单的几个小页面。 说到vite&#xff0c;之前虽然都有学习了解及demo尝试&#xff0c;但因为业务等其他各方面因素也…

uniapp开发APP从开发到上架全过程(一)

前端时间受朋友委托帮他开发了一款APP&#xff0c;综合考虑了下&#xff0c;没有上原生&#xff0c;使用了uniapp这一套技术栈来进行开发 uniapp是dcloud推出的一套跨端前端解决方案&#xff0c;可以通过一套代码生成小程序、安卓、IOS、H5等代码&#xff0c;对于中小项目来说…

vue通知提醒消息

目录 前言 一、Notification 二、Notification引用 1.全局引用 2.单独引用 三、参数说明 四、简单案例 五、项目实战 1、定义全局Notification。 2、Websocket实时接收通知。 3、消息通知 前言 最近有个项目需求就是在客户端的右上角要实时展示提醒消息&#xff0c;下…

vue3使用tinymce

1、安装相关依赖 npm install tinymce -S npm install tinymce/tinymce-vue -S2、下载中文包 地址 https://www.tiny.cloud/get-tiny/language-packages/ 3. 引入皮肤和汉化包 在项目public文件夹下新建tinymce文件夹&#xff0c; 将下载的汉化包解压到此文件夹 然后在node…

js延迟加载的六种方式

1. defer 属性 HTML 4.01 为<script>标签定义了defer属性。标签定义了defer属性元素中设置defer属性&#xff0c;等于告诉浏览器立即下载&#xff0c;但延迟执行标签定义了defer属性。 用途&#xff1a;表明脚本在执行时不会影响页面的构造。也就是说&#xff0c;脚本会…

论文阅读笔记《Nctr: Neighborhood Consensus Transformer for Feature Matching》

核心思想 本文提出一种融合邻域一致性的Transfomer结构来实现特征点的匹配&#xff08;NCTR&#xff09;。整个的实现流程和思想与SuperGlue相似&#xff0c;改进点在于考虑到了邻域一致性。邻域一致性在许多的传统图像匹配和图匹配任务中都有应用&#xff0c;他基于一个很重要…

【VUE前进之路】使用数据代理,计算属性与监视属性的妙用

1.数据代理 1.1什么是数据代理 通过一个对象代理对另一个对象中属性的操作&#xff08;读/写&#xff09; 1.Vue中的数据代理&#xff1a;通过vm对象来代理data对象中属性的操作&#xff08;读/写&#xff09; 2.Vue中数据代理的好处:更加方便的操作data中的数据 3.基本原理:…

ESLint 配置入门

大家好&#xff0c;我是前端西瓜哥&#xff0c;今天带大家了解 ESLint 的配置项。 ESLint 是一款检查 JavaScript 程序是否符合特定的规则的工具。比如字符串用单引号还是双引号&#xff0c;tab 缩进用 2 个空格还是 4 个空格还是其他&#xff0c;这些都可以用 ESLint 来规定。…

微信小程序---分包操作

有时候我们的小程序太大&#xff0c;首次打开小程序的时候回比较慢&#xff0c;这个时候我们可以试试分包操作。分包可以让用户在操作小程序的时候按需下载资源&#xff08;用户在进入某些页面的时候才去下载相应的资源&#xff0c;可以加快小程序的速度&#xff0c;优化用户体…

前端学习笔记(15)-Vue3状态管理store及Vuex的使用

1.状态管理 2.用响应式API做简单状态管理 3.Vuex基础 4.Vuex 核心概念 5. VuexsessionStorage实现数据存储1.状态管理理论上来说&#xff0c;每一个 Vue 组件实例都已经在“管理”它自己的响应式状态了。我们以一个简单的计数器组件为例&#xff1a;<script setup> impor…