Sass @Import规则和命名

时间:2016-07-13 19:27:22

标签: css sass

我已经阅读了许多关于在sass中导入sass文件的文章,但我似乎无法绕过它。似乎有很多不同的方法。

我试过复制一个看起来像这样的fellas设置:

global
- style.scss

Components
- buttons.scss
- colors.scss
- fonts.scss
- etc.

Utils
- normalize.scss

所以,让我们说这是我的设置。有人说我应该用下划线命名每个scss文件:_buttons.scss而其他人说不要这样做。

如果我在style.scss工作,我仍然需要使用import url("components.buttons.scss"),就像我一直在做,或者我错过了什么?如果我没有遗漏这个设置和典型的CSS设置之间的区别是什么?

3 个答案:

答案 0 :(得分:3)

使用下划线命名您的sass文件通常意味着它已理解文件正在@import,因此不需要(并且不会被!)编译作为一个独立的文件 - 虽然这可能取决于你的构建系统以及你的sass如何编译。

使用the command line中的sass,假设您有以下文件集:

stylesheets/
  _reset.scss
  _fonts.scss
  _header.scss
  contact-page.scss
  style.css

style.scss可能包含的位置:

@import 'reset.scss';
@import 'fonts.scss';
@import 'header.scss';

(请注意,使用sass导入时,您不需要包含下划线)

编译后,您的新stylesheets/目录将仅包含style.csscontact-page.css,而style.scss将包含reset的所有内容,{{1 }和fonts。下划线的文件不会自行编译。

如果您要将header重命名为_reset.scss,则会将其编译为reset.scss,但其内容也会包含在reset.css中,因为您正在导入它也是。

因此:如果您不需要文件并且style.css将其放入另一个文件中,请在文件名中使用下划线。

答案 1 :(得分:0)

这就是我们构建sass项目的方式。



OberservableCollection




主sass文件如下

namespace ActionlessForm {
  public class Form : System.Web.UI.HtmlControls.HtmlForm
  {
     protected override void RenderAttributes(HtmlTextWriter writer)
     {
        writer.WriteAttribute("name", this.Name);
        base.Attributes.Remove("name");

        writer.WriteAttribute("method", this.Method);
        base.Attributes.Remove("method");

        this.Attributes.Render(writer);

        base.Attributes.Remove("action");

        if (base.ID != null)
           writer.WriteAttribute("id", base.ClientID);
     }
  }
}

more info

答案 2 :(得分:0)

如果在文件名的开头添加下划线,Sass将不会编译它。因此,如果您不希望colors.scss编译为colors.css,请将文件命名为_colors.scss。以这种方式命名的文件在Sass术语中称为partials。

有关它的更多信息,请阅读here