为什么在scss中把_放在文件名前面?

_filename。为什么它需要_ ?


当前回答

_用于表示偏导数。这些部分包含预处理阶段所需的变量和内部函数,它们不需要被编译为css。_ partial templates包含utils, SCSS局部变量和编译SCSS到css所需的函数。

其他回答

_(下划线)是scss的部分。这意味着样式表将被导入(@import)到主样式表,即styles.scss。使用部分的好处是,你可以使用许多文件来组织你的代码,所有的东西都将在一个文件中编译。

_用于表示偏导数。这些部分包含预处理阶段所需的变量和内部函数,它们不需要被编译为css。_ partial templates包含utils, SCSS局部变量和编译SCSS到css所需的函数。

当你在文件名前包含“_”时,它不会生成到CSS中,除非你将它导入到另一个非局部的sass文件中。

假设您的文件夹结构是这样的

/scss
 style.scss
 _list.scss
/css

如果执行该命令

sass --watch scss:css

只会创建style.css和style.css.map文件,sass编译器会省略_list. map文件。而不需要将其内容转换为CSS文件。

/scss
 style.scss
 _list.scss
/css
 style.css
 style.css.map

使用partial的唯一方法是将它们导入另一个.scss文件

@import 'list.scss';

如果你移除_list前的“_”。SCSS命令的结果将是

/scss
 style.scss
 list.scss
/css
 style.css
 style.css.map
 list.css
 list.css.map

使用部分的主要目的是将我们的CSS代码分解成几个更容易维护的部分。希望这能有所帮助。谢谢。

此外,如果不使用下划线前缀,在节点环境中使用node-sass的监视器将导致错误消息,请参阅https://github.com/sass/node-sass/issues/2762

以下划线开头的sass文件是局部文件。这是将你的样式划分为逻辑部分的好方法。当您使用@import时,这些文件都在编译时合并。

来自Sass语言指南:

您可以创建部分Sass文件,其中包含可以包含在其他Sass文件中的CSS小片段。这是一种模块化CSS的好方法,有助于使事情更容易维护。部分只是一个以前导下划线命名的Sass文件。可以将其命名为_partial.scss。下划线让Sass知道该文件只是一个部分文件,它不应该生成到CSS文件中。Sass部分与@import指令一起使用。

http://sass-lang.com/guide