为什么要在scss/css中放置文件名"_"或"_"?

Nik*_*o_D 115 css sass

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

_filename.scss- 为什么需要_

小智 121

_(下划线)是scss的一部分.这意味着要将样式表导入(@import)到主样式表,即styles.scss.使用partials的优点是你可以使用许多文件来组织代码,所有内容都将在一个文件上编译.

  • @aokaddaoc好像你写了相同的代码行:) (13认同)
  • 哦,谢谢你指出我的错误."但是`import'_file';`和`import'文件';`做同样的事情吧?" (13认同)
  • @ESR:同意,这个功能在现代 Web 开发环境中感觉有点过时了。如果您的项目以合理的方式构建,您绝对不需要`_`。 (5认同)
  • 缺少一个重要的事实,如果省略下划线,导入仍然有效,但对于每个 scss 文件都会生成一个 css 文件。通常你不想要/不需要它,如果它们只包含 mixin,它们通常是 0 字节长。 (5认同)
  • 如果我以一种我只发送单个文件到我的编译器/预处理器的方式构建我的文件,为什么我的文件前面加上`_`这很重要?我正在考虑从我的文件名中删除下划线.Sass文件是否是部分(即可导入的代码段)应该取决于它在项目体系结构中的位置,而不是文件的命名方式. (4认同)
  • 但是`import'_file';`和`import'_file';`做同样的事情对吗? (2认同)

cam*_*web 47

以下划线开头的sass文件是部分的.这是将样式分成逻辑部分的好方法.使用时,这些文件都会在编译时合并@import.

从Sass语言指南:

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

http://sass-lang.com/guide


dmc*_*han 41

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

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

/scss
 style.scss
 _list.scss
/css
Run Code Online (Sandbox Code Playgroud)

如果你运行命令

sass --watch scss:css
Run Code Online (Sandbox Code Playgroud)

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

/scss
 style.scss
 _list.scss
/css
 style.css
 style.css.map
Run Code Online (Sandbox Code Playgroud)

您可以使用部分的唯一方法是将它们导入到另一个 .scss 文件中

@import 'list.scss';
Run Code Online (Sandbox Code Playgroud)

如果删除 _list.scss 前面的“_”,命令的结果将是

/scss
 style.scss
 list.scss
/css
 style.css
 style.css.map
 list.css
 list.css.map
Run Code Online (Sandbox Code Playgroud)

使用 partials 的主要目的是将我们的 CSS 代码分解成更易于维护的几部分。希望这可以帮助。谢谢。

  • 这是正确的答案。但是,您也没有提到 _index.scss 的特殊情况:https://sass-lang.com/documentation/at-rules/import#index-files (4认同)

Tah*_*Reu 9

编译器会忽略带_(下划线)的文件.但是,所有这些文件都被导入到单个主SCSS文件(即styles.scss)中,这个文件实际上是编译的文件(它的名称中没有_(下划线))

最终目标是只编译一个SCSS文件,并且只有一个CSS文件,这具有各种优点.