将scss收为己用,如何使唤scss?

上一篇文章我们见识了scss的魅力之处,如此有魅力的工具,我们要如何收为己用呢?

现在我们来看看我们怎么来使唤sass吧!

一. sass的三种使唤方式

1. 作为命令行工具

1. 在命令行中运行 Sass:

sass input_name.scss:output_name.css

其中input_name.scss是我们要转化的scss文件名,output_name.css 是我们要输出的css文件名及相应的路径,但是例子中的路径默认为当前路径。

大家有没有觉得每次这样会特别麻烦呢?聪(lan)明(duo)的同学们可能就会思考了,可不可以编译一下,以后能够自动检测改变,并实现转化呢?当然有啦,不过专业术语叫做监视,下面我们来看看下面的实现方式:

2. 监视单个sass 文件,每次修改并保存时自动编译:

sass --watch input_name.scss:output_name.css

3. 监视整个文件夹:

sass --watch app/sass:public/stylesheets

NOTE:

1. 其中watch就是一个监视参数,我们可以时刻监控着scss文件的改变。

2. 更多命令的用法我们可以通过 sass --help 获取帮助信息。

2. 作为独立的 Ruby 模块 (Ruby module)

1. Sass gem 安装完毕后,运行如下代码:

require "sass"

2. 按照下面的代码,使用 Sass::Engine:

engine = Sass::Engine.new("#main ", :syntax => :scss)

engine.render #=> "#main { background-color: #0000ff; }\n"

3. 作为 Rack-enabled 框架的插件(例如 Ruby on Rails 与 Merb)

1. 在 Rails 3 之前的版本中使用 Sass,需要在 environment.rb 文件中添加:

config.gem "sass"

2. Rails 3 则需要在 Gemfile 中添加:

gem "sass"

3. 在 Merb 中使用 Sass,需要在 config/dependencies.rb 文件中添加:

dependency "merb-haml"

4. 在 Rack 中使用 Sass,需要在 config.ru 中添加:

require 'sass/plugin/rack'

use Sass::Plugin::Rack

NOTE:

样式文件与 views 不同,不包含任何动态内容,因此 CSS 只需要在 Sass 文件被修改后再编译生成。

默认情况下 .sass 与 .scss 文件放置在 public/stylesheets/sass路径 中(我们可以通过 :template_location 参数来修改默认存放的路径),编译生成的 CSS 文件放置在 public/stylesheets 中。例如 public/stylesheets/sass/main.scss 编译生成 public/stylesheets/main.css。

NOTE:无论上述的哪种方式都需要先安装 Sass gem才可以哦。 (Windows 系统需要先安装 Ruby)

其中安装 sass gem 的代码如下:

gem install sass

二. 缓存

在默认情况下,我们的sass会自动缓存编译后的模板与 partials,因为这样做能够显著提升重新编译的速度,尤其在处理由 @import 导入多个子文件的大型项目时。

在我们单独使用 sass的时候,缓存内容保存在 .sass-cache 文件夹中。在 Rails 和 Merb 项目中缓存文件保存在 tmp/sass-cache 文件夹中,我们可通过 :cache_location 修改路径缓存文件的缓存路径。

NOTE:禁用缓存可将 :cache 设为 false。

三. 判断语法格式

上一篇文章我们讲述过scss与sass的区别,直观的讲其实就是二者版本不一样。而我们的Sass 命令行工具根据文件的拓展名判断所使用的语法格式,没

有文件名时 sass 命令默认编译 .sass 文件,添加 --scss 选项或者使用 scss 命令则会编译为 .scss 文件。

四. 编码格式

在 Ruby 1.9 及以上环境中运行 Sass 时,Sass 对文件的编码格式比较敏感,首先会根据 CSS spec 判断样式文件的编码格式,如果失败则检测 Ruby string encoding。也就是说,Sass 首先检查 Unicode byte order mark,然后是 @charset 声明,最后是 Ruby string encoding,然后根据检测到的编码,作为我们sass文件的编码格式。假如都没有检测到,默认使用 UTF-8 编码。

与 CSS 相同,使用 @charset 可以声明特定的编码格式。在样式文件的起始位置(也就是说前面要没有任何空白与注释哦!)插入 @charset "encoding-name", Sass 将会按照给出的编码格式编译文件。

Sass 以 UTF-8 编码输出 CSS 文件,当且仅当编译后的文件中包含非 ASCII 字符时,才会在输出文件中添加 @charset 声明,而在压缩模式下 (compressed mode) 使用 UTF-8 byte order mark 代替 @charset 声明语句。

NOTE: 大家一定要注意所使用的编码格式必须要是可以转换为 Unicode 字符集。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180629A10F9G00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券