Brian F爱
从专注于角图,Web技术以yobet英雄联盟及波特兰的Node.js的Google开发人员专家中学习。
广告 ·ultimatecourses.com.
用终极课程学习角度正确的方式

少了Sass.

Auf Wiedersehen少,Hallo Sass!在这篇文章中,我要掩盖:

  • 为什么不那么无礼呢?
  • 如何从少迁移到SASS,以及几件事要注意。
  • 使用grunt-contract-sass编译sass。
  • 切换到BootRap-Sass(直到Bootrap 4稳定)。
  • 将Postcss自动申子任务添加到Gry Nurft任务中,以向CSS添加必要的供应商前缀。
  • 而且,从较少的帽子切换到波旁SASS Mixin库。

为什么不那么无礼呢?

我从“少说”转变为“说脏话”,原因如下:

  • Bootstrap 4刚刚宣布并正在移动到Sass。
  • 恶言恶语更有威力。Sass具有逻辑运算符、循环、嵌套媒体查询、扩展等功能。
  • 较少很容易学习,它可以快速升级到Sass。所以,似乎现在是时候对Sass感到舒服。

如何从少到Sass

由于语法的相似性,从少到Sass迁移相当容易。你可以运行一堆正则表达式,但它更容易使用less2sass ruby gem

安装less2sass:

$宝石安装Less2sass.

转换您的较少的文件到scss:

$ less2sass变量无效_variables.scss

接下来,您需要确保已经安装了SASS Ruby Gem。这是将SASS编译为CSS所必需的。新的libsass C库即将发布,这是一个用于编译SASS的高性能库,但在libsass稳定之前,我们将使用Ruby Gem。您可以通过命令行安装:

$苏达宝石安装Sass.

bootstrap 3 sass.

虽然Bootstrap 4是使用SASS构建的,但是Bootstrap 3使用的较少。谢天谢地,有一个官方港口从少到粗

我在Git项目中添加了Bootstrap-Sass存储库作为子模块:

git子模块https://github.com/twbs/bootstrap-sass.

然后我修改了我的main.scss导入自举SASS文件:

@进口“/ lib / bootstrap-sass / cassets / stylesheets / bootstrap”

使用Bootstrap和SASS版本有一些区别。这些只是我在目前的项目中遇到的一些问题。

  • 没有混合,如。隐(),告诉()存在于bootstrap-sass端口。
  • 没有.img-retina()mixin。然而,正如我们将在不久实施的那样,Bourbon Sass Mixin库包括一个@ Retina-Image()mixin。
  • 您需要添加PostCss自动申子。

编译SASS.

在将SASS编译为CSS时,有很多选择,所以我甚至不会试图在这里覆盖它们。相反,我只关注使用Grunt和Grunt-Contren-Sass包。

首先,我们需要安装grunt-contrib-sass节点包。为此,我已添加以下依赖于我的package.json文件。

{“名称”“我的应用程序”“版”“1.0.0”“作者”{“名称”“yobet外围Brian Love”“电子邮件”“foo@bar.com”}“依赖”{“grunt-cli”“最新”“咕噜咕噜咕噜咕噜”“最新”“grunt-contrib-sass”“最新”}}

现在我已经为我的应用程序指定了grunt-contrib-sass包依赖关系,我可以安装/更新必要的模块了。

$NPM.更新

使用Grunt-Contract-Sass节点包我们可以在我们的SASS任务中设置SASS任务Grurtfile.coffee.文件。任务编译main.scssIE-8.SCS文件。请注意,我正在使用grunt-contract-sass包。节点SASS节点包是高性能周围的包装器libsass.C库,但它还没有完全准备好(在撰写本文时)。

这是我的Grurtfile.coffee.文件看起来像:

咕噜声=咕哝着说->Gruntconfig=Sass.经销文件'CSS / main.css''css / src / main.scs''CSS / IE-8.CSS''CSS / SRC / IE-8.SCS'Sass.文件['CSS / SRC / *。SCSS']任务[“萨斯”]咕哝着说initconfig gruntconfig gruntloadnpmtasks.'咕噜咕噜 -  sass'咕哝着说loadnpmtasks.'Grunt-Contrip-Watch'咕哝着说寄存器“默认”[“萨斯”]模块出口=咕噜声

现在,它很容易通过默认任务编译我的SAS:

美元的呼噜声

或者,让任务运行SASS <任务时。scss文件被修改:

美元的呼噜声

添加PostCSS自动修复程序

使用Bootstrap-Sass时需要PostCSS自动申子。AutoPrefixer将根据您指定的浏览器列表(并根据您的业务需求)将必要的浏览器前缀添加到CSS上。我决定瞄准以下浏览器列表:

  • 最后2个版本
  • 5%在美国

  • IOS 7
  • Firefox ESR

此浏览器列表配置文件将指示AutoPrefixer到所需的前缀级别。您会惊讶于仍需要预先装配几个CSS3属性。例如,没有真正的原因前缀框阴影或边界半径。autoprefixer的最佳部分是它使用来自的数据caniuse.com,所以它总是最新的。而且,现在您只需编写纯W3C CSS3代码而不担心供应商前缀!

autoprefixer是的一部分Postcss库,所以我们需要通过我们的package.json文件指定包:

{“作者”{“电子邮件”“foo@bar.com”“名称”“yobet外围Brian Love”}“依赖”{“autoprefixer-core”“最新”“grunt-cli”“最新”“grunt-contrib-sass”“最新”“咕噜咕噜咕噜咕噜”“最新”“咕噜声”“最新”}“名称”“我的应用程序”“版”“1.0.0”}

现在我们需要更新已安装的节点模块,以便安装grunt-postcss和autoprefix -core包。

$NPM.更新

接下来,我们需要更新我们的Grurtfile.coffee.文件包含一个postcss任务,使用自动申子核心处理器。该浏览器属性是基于的值数组浏览器列表项目。

咕噜声=咕哝着说->Gruntconfig=包裹咕哝着说文件readjson.“package.json”Sass.经销文件'CSS / main.css''css / src / main.scs''CSS / IE-8.CSS''CSS / SRC / IE-8.SCS'postcss选择地图真正的处理器[要求'autoprefixer-core'浏览器[“去年2版本”'> 5%在美国''IOS 7'“火狐ESR”]]经销src'CSS / *。CSS'Sass.文件['CSS / SRC / *。SCSS']任务[“萨斯”“postcss”]咕哝着说initconfig gruntconfig gruntloadnpmtasks.'咕噜咕噜 -  sass'咕哝着说loadnpmtasks.“grunt-postcss”咕哝着说loadnpmtasks.'Grunt-Contrip-Watch'咕哝着说寄存器“默认”[“萨斯”“postcss”]模块出口=咕噜声

再次运行grunt命令将重新构建main.css.使用autoprefixer的文件处理CSS以获取任何必要的浏览器前缀。

美元的呼噜声

比布鲁斯少的帽子

波旁酒是SASS的一个漂亮的轻质Mixin库。所以,我最后一步就是从较少的帽子转向波旁。我个人选择在指南针上使用波旁面包,因为我正在使用Bootstrap,不需要罗盘中的许多功能。

git子模块https://github.com/thoughtbot/bourbon.

然后我们导入Bourbons进入我们的Main.scss项目文件:

@进口“/ lib / bourbon / app /资产/ stylesheets / bourbon”

我将简要地指出LESS Hat和Bourbon之间的一些区别。我相信还有其他的改变,但是这里有一些我遇到的必要的改变。

  • .font-face()- LESS Hat mixin与波旁威士忌有不同的争论。实际上,Bourbon的@font-face mixin要好得多,它允许您将字体文件格式指定为列表。
  • .border-top-left-radius()- 波旁栏中不存在较少的帽子Mixin,使用AutoPrefixer。
  • .border-top-right-radius ()- 波旁栏中不存在较少的帽子Mixin,使用AutoPrefixer。
  • .border-bottom-右radius()- 波旁栏中不存在较少的帽子Mixin,使用AutoPrefixer。
  • .border-bottom-left-radius ()- 波旁栏中不存在较少的帽子Mixin,使用AutoPrefixer。
  • $ mixin border-right-radius ()- 使用Bourbon同时指定顶部和右下边界半径。

好吧,我的经历从少到Sass迁移到了很多乐趣,我真的很兴奋地使用Sass前进!

Brian F爱

嗨,我是布莱恩。我对类型名称,Angular和node.js感兴趣我嫁给了我最好的朋友邦妮,我住在波特兰和我滑雪(很多)。