css - SCSS和Sass有什么区别?

从我一直在阅读的内容来看,Sass是一种通过变量和数学支持使CSS更强大的语言。

与SCSS有什么区别? 它应该是同一种语言吗? 类似? 不同?

bruno077 asked 2018-12-26T08:42:47Z

12个解决方案

1419 votes

Sass是一个具有语法改进的CSS预处理器。 高级语法中的样式表由程序处理,并转换为常规CSS样式表。 但是,它们并没有扩展CSS标准本身。

其主要原因是增加了CSS痛苦缺乏的功能(如变量)。

SCSS和Sass之间的区别,Sass文档页面上的这个文本应该回答这个问题:

Sass有两种语法可供使用。 第一个,称为SCSS(Sassy CSS),在整个引用中使用,是CSS语法的扩展。 这意味着每个有效的CSS样式表都是具有相同含义的有效SCSS文件。 使用下面描述的Sass功能增强了此语法。 使用此语法的文件具有.scss扩展名。

第二个和更早的语法,称为缩进语法(有时只是“Sass”),提供了一种更简洁的CSS编写方式。 它使用缩进而不是括号来指示选择器的嵌套,而使用换行符而不是分号来分隔属性。 使用此语法的文件具有.sass扩展名。

但是,所有这些只适用于最终创建CSS的Sass预编译器。 它不是CSS标准本身的扩展。

MauroPorrasP answered 2018-12-26T08:43:16Z

495 votes

我是帮助创建Sass的开发人员之一。

不同之处在于UI。 在文字外部下方,它们是相同的。 这就是为什么sass和scss文件可以互相导入的原因。 实际上,Sass有四种语法分析器:scss,sass,CSS等等。 所有这些都将不同的语法转换为抽象语法树,它通过sass-convert工具进一步处理成CSS输出甚至其他格式之一。

使用您最喜欢的语法,两者都得到完全支持,如果您改变主意,可以稍后更改它们。

chriseppstein answered 2018-12-26T08:43:46Z

287 votes

Sass .css文件在视觉上与.scss文件不同,例如,

Example.sass - sass是较旧的语法

$color: red

=my-border($color)

border: 1px solid $color

body

background: $color

+my-border(green)

Example.scss - sassy css是Sass 3的新语法

$color: red;

@mixin my-border($color) {

border: 1px solid $color;

}

body {

background: $color;

@include my-border(green);

}

只需将扩展名从.css更改为.scss,即可将任何有效的CSS文档转换为Sassy CSS(SCSS)。

Anthuan Vásquez answered 2018-12-26T08:44:19Z

60 votes

它的语法不同,这是主要的专业(或者con,取决于你的观点)。

我会尽量不重复其他人所说的内容,你可以轻松地谷歌,但相反,我想从我使用两者的经验中说几件事,有时甚至在同一个项目中。

SASS亲

更清洁 - 如果你来自Python,Ruby(你甚至可以用类似符号的语法编写道具)甚至是CoffeeScript世界,它对你来说都很自然 - 编写mixins,函数以及.sass中的任何可重用的东西都很多' 比.scss(主观)更容易和可读。

SASS缺点

空白敏感(主观),我不介意在其他语言中,但在CSS中它只是困扰我(问题:复制,制表与太空战争等)。

没有内联规则(这对我来说是游戏破坏),你不能像.scss那样做.scss .sass

导入其他供应商的东西,复制vanilla CSS片段 - 一段时间后不是不可能但很无聊。 解决方案是在项目中包含.scss文件(以及.sass文件)或将它们转换为.sass。

除此之外 - 他们做同样的工作。

现在,我想做的是在.scss中编写mixins和变量,如果可能的话,将在.sass中实际编译为CSS的代码(即Visual Studio不支持.sass,但每当我处理Rails项目时,我通常会将两个 他们,而不是在一个文件中)。

最近,我正在考虑给Stylus一个机会(对于一个全时的CSS预处理器),因为它允许你在一个文件中组合两个语法(在其他一些功能中)。 对于一支球队来说,这可能不是一个好方向,但是当你单独维护它时 - 没关系。 当语法有问题时,手写笔实际上最灵活。

最后mixin for .scss vs .sass语法比较:

// SCSS

@mixin cover {

$color: red;

@for $i from 1 through 5 {

&.bg-cover#{$i} { background-color: adjust-hue($color, 15deg * $i) }

}

}

.wrapper { @include cover }

// SASS

=cover

$color: red

@for $i from 1 through 5

&.bg-cover#{$i}

background-color: adjust-hue($color, 15deg * $i)

.wrapper

+cover

Drops answered 2018-12-26T08:45:30Z

47 votes

从语言的主页

Sass有两种语法。 新主力   语法(从Sass 3开始)被称为   “SCSS”(用于“Sassy CSS”),是一个   CSS3语法的超集。 这意味着   每个有效的CSS3样式表都是   有效的SCSS也是如此。 SCSS文件使用   扩展名.scss。

第二个较旧的语法称为   缩进语法(或只是“Sass”)。   受到Haml的简洁启发,它就是   适合喜欢的人   与CSS相似的简洁性。   它代替括号和分号   使用行的缩进   指定块。 虽然不再了   主要语法,缩进语法   将继续得到支持。档   在缩进语法中使用   扩展名.sass。

SASS是一种吐出CSS的解释语言。 Sass的结构看起来像CSS(远程),但在我看来,描述有点误导; 它不是CSS或扩展的替代品。 它是一个最终吐出CSS的解释器,因此Sass仍然具有普通CSS的局限性,但它用简单的代码掩盖它们。

Blender answered 2018-12-26T08:46:05Z

42 votes

Sass(Syntactically Awesome StyleSheets)有两种语法:

更新:SCSS(Sass CSS)

和一个较旧的,原始的:缩进语法,这是原始的萨斯,也被称为萨斯。

因此它们都是Sass预处理器的一部分,具有两种不同的可能语法。

SCSS与原始Sass之间最重要的区别:

SCSS:

它的语法类似于CSS。

使用大括号=。

使用分号=。

SCSS中的变量符号是=。

SCSS的转让登录是=。

使用此语法的文件具有.scss扩展名。

原始萨斯:

它的语法类似于Ruby。

这里没有括号的用法。

没有严格的缩进。

没有分号。

Sass中的变量符号是=而不是:。

Sass的作业是=而不是:。

使用此语法的文件具有.sass扩展名。

这些是Sass可用的两种语法。

有些人更喜欢Sass,原始语法 - 而其他人更喜欢SCSS。 无论哪种方式,但值得注意的是Sass的缩进语法并没有也永远不会被弃用。

转换为sass-convert:

# Convert Sass to SCSS

$ sass-convert style.sass style.scss

# Convert SCSS to Sass

$ sass-convert style.scss style.sass

SASS REFERENCE

simhumileco answered 2018-12-26T08:48:06Z

19 votes

基本区别在于语法。 虽然SASS的语法松散且带有空格且没有分号,但SCSS更像CSS。

designerNProgrammer answered 2018-12-26T08:48:26Z

9 votes

原文{}是ruby语法,类似于ruby,jade等...

在那些语法中,我们不使用{},而是使用白色空格,也没有使用; ......

在{}语法更像是;,但有更多的选项,如:嵌套,声明等,类似于spaces和其他预处理CSS ......

他们基本上做同样的事情,但我把每行的几行看到语法差异,看看{},;和spaces:

上海社会科学院:

$width: 100px

$color: green

div

width: $width

background-color: $color

SCSS:

$width: 100px;

$color: green;

div {

width: $width;

background-color: $color;

}

Alireza answered 2018-12-26T08:49:08Z

8 votes

Sass是第一个,语法有点不同。例如,包括mixin:

Sass: +mixinname()

Scss: @include mixinname()

Sass忽略了大括号和半冒号并且在嵌套上,我发现它更有用。

user3522940 answered 2018-12-26T08:49:34Z

6 votes

SASS和SCSS文章之间的差异解释了细节上的差异。 不要被SASS和SCSS选项混淆,虽然我最初也是,.scss是Sassy CSS,是下一代.sass。

如果这没有意义,你可以看到下面代码的差异。

/* SCSS */

$blue: #3bbfce;

$margin: 16px;

.content-navigation {

border-color: $blue;

color: darken($blue, 9%);

}

.border {

padding: $margin / 2; margin: $margin / 2; border-color: $blue;

}

在上面的代码中我们使用; 分开声明。 我甚至将.border的所有声明添加到一行中以进一步说明这一点。相反,下面的SASS代码必须在带有缩进的不同行上,并且没有使用;。

/* SASS */

$blue: #3bbfce

$margin: 16px

.content-navigation

border-color: $blue

color: darken($blue, 9%)

.border

padding: $margin / 2

margin: $margin / 2

border-color: $blue

您可以从下面的CSS中看到,SCSS样式与常规CSS相比,与旧的SASS方法非常相似。

/* CSS */

.content-navigation {

border-color: #3bbfce;

color: #2b9eab;

}

.border {

padding: 8px;

margin: 8px;

border-color: #3bbfce;

}

我想大多数时候,如果有人提到他们正在与Sass合作,他们指的是.scss而不是传统的.sass方式。

Shailesh Vikram Singh answered 2018-12-26T08:50:13Z

5 votes

SASS代表Syntactically Awesome StyleSheets。 这是一个扩展   CSS为基本语言增添了力量和优雅。 SASS是   新命名为SCSS有一些chages,但旧的SASS也是   那里。 在使用SCSS或SASS之前,请参阅以下差异。

一些SCSS和SASS语法的示例

SCSS

$font-stack: Helvetica, sans-serif;

$primary-color: #333;

body {

font: 100% $font-stack;

color: $primary-color;

}

//Mixins

@mixin transform($property) {

-webkit-transform: $property;

-ms-transform: $property;

transform: $property;

}

.box { @include transform(rotate(30deg)); }

上海社会科学院

$font-stack: Helvetica, sans-serif

$primary-color: #333

body

font: 100% $font-stack

color: $primary-color

//Mixins

=transform($property)

-webkit-transform: $property

-ms-transform: $property

transform: $property

.box

+transform(rotate(30deg))

编译后输出CSS(两者都相同)

body {

font: 100% Helvetica, sans-serif;

color: #333;

}

//Mixins

.box {

-webkit-transform: rotate(30deg);

-ms-transform: rotate(30deg);

transform: rotate(30deg);

}

更多参考官方网站

Srikrushna Pal answered 2018-12-26T08:50:56Z

2 votes

紧凑的答案:

SCSS是指Sass CSS预处理器支持的主要语法。

以.sass结尾的文件表示Sass支持的标准语法。 SCSS是CSS的超集。

以.sass结尾的文件表示源自ruby世界的Sass支持的“较旧”语法。

matthias answered 2018-12-26T08:51:30Z

.scss和.css的区别,css - SCSS和Sass有什么区别?相关推荐

  1. 在SCSS文件中导入常规CSS文件?

    本文翻译自:Import regular CSS file in SCSS file? Is there anyway to import a regular CSS file with Sass's ...

  2. scss2css vscode设置_VSCode下让CSS文件完美支持SCSS或SASS语法方法

    VSCode下让CSS文件完美支持SCSS或SASS语法方法 习惯Webpack + PostCSS后, 通常PostCSS都是直接对CSS文件进行处理, 但是大部分习惯SCSS/SASS/LESS的 ...

  3. css文件如何设置scss,在SCSS文件中导入常规CSS文件?

    回答(14) 3 years ago 截至撰写本文时,看起来这是未实现的: https://github.com/sass/sass/issues/193 对于libsass(C / C实现),导入对 ...

  4. SCSS和Sass有什么区别?

    根据我的阅读,Sass是一种语言,它通过变量和数学支持使CSS更加强大. SCSS有什么区别? 是否应该使用相同的语言? 类似? 不同? #1楼 基本区别是语法. 尽管SASS的语法宽松,带有空格,没 ...

  5. SCSS 和 Sass 有什么区别?

    问: 从我一直在阅读的内容来看,Sass 是一种通过变量和数学支持使 CSS 更强大的语言. 与 SCSS 有什么区别?它应该是同一种语言吗?相似的?不同的? 答1: huntsbot.com – 程 ...

  6. [css] 圣杯布局和双飞翼布局的理解和区别,并用代码实现

    [css] 圣杯布局和双飞翼布局的理解和区别,并用代码实现 一: section{height: 100%; overflow: hidden;clear:both; } .left{ height: ...

  7. [css] transition、animation、transform三者有什么区别?

    [css] transition.animation.transform三者有什么区别? transition:比较简单的过度动画animation: 使用keyframe自定义动画,比较详细的动画过 ...

  8. [css] 你知道css的预处理器和后处理器都有哪些吗?它们有什么区别呢?

    [css] 你知道css的预处理器和后处理器都有哪些吗?它们有什么区别呢? 目前最主流的 CSS 预处理器:Sass.LESS.Stylus .优缺点优点:语言级逻辑处理,动态特性,改善项目结构缺点: ...

  9. [css] 鼠标事件css的:hover和js的mouseover有什么区别?

    [css] 鼠标事件css的:hover和js的mouseover有什么区别? JavaScript中鼠标事件有:onmouseover和onmouseout: 当鼠标移入和移出时触发事件onmous ...

最新文章

  1. 认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL:
  2. 【全文搜索引擎】Elasticsearch相关介绍与linux系统安装
  3. 【shell】Linux shell 之 判断用户输入的变量是否为数字
  4. SQL Server:查看数据库用户权限
  5. v8学习笔记(六) 汇编过程
  6. 深入浅出学Hive:Hive内建操作符与函数开发
  7. SQL Server安装文件挂起错误解决办法【转帖】
  8. git-bug分支-git-stash-工作代码与bug解决同时处理时解决模拟
  9. cifar10数据集测试有多少张图_图神经网络的ImageNet?斯坦福开源百万量级OGB基准测试数据集...
  10. mysql5.6.27安装_mysql-5.6.27源码安装及错误解决办法
  11. 架构与设计的流程和核心概念笔记:三、业务层设计
  12. 游戏公司2022秋招记录
  13. python秩和比综合评价代码记录
  14. k8s中各组件和kube apiserver通信时的认证和鉴权
  15. kaggle quora_我想以自己的方式使用网络,非常感谢Quora。
  16. Android_GitHub_xUtils之DbUtils、ViewUtils、HttpUtils、BitmapUtils
  17. python程序设计上机实践答案_清华大学出版社-图书详情-《C++程序设计上机实践与学习辅导(第三版)》...
  18. 用C++实现渊子赛马程序
  19. 算法设计与分析 SCAU17964 水桶打水
  20. 毕业参加工作了,记住一句话,攒钱绝对靠谱

热门文章

  1. 医学图像处理医学图像处理-卷积神经网络卷积神经网络_基于深度卷积神经网络的刀具磨损量自动提取方法...
  2. 蛋花花分析到底该不该让孩子学编程
  3. python解析pcap提取{src ip,src port,protocol,dst ip, dst port}五元组,再提取网络流(包括前向流与后向流)
  4. 关于poi/Npoi创建批注后,EXCEL不能显示,wps能显示的问题
  5. Python高级编程之数据库sqlite3(一)
  6. Spring注解事务不支持 protect private 方法的原因
  7. 大专计算机网络毕业论文简单,计算机网络大专毕业论文范文
  8. 中兴服务器告警,中兴ZXPCS 10.0网管系统简介
  9. 【单片记笔记】基于STM32F103的NEC红外发送接收使用同一个定时器的一体设计
  10. java 上下键_java-同时使用WASD和方向键