node-sass 的安装和使用

安装

npm install  node-sass  -g

安装慢的话 可以考虑淘宝镜像

安装成功:

node-sass -v
node-sass   4.5.3   (Wrapper)   [JavaScript]
libsass     3.5.0.beta.2    (Sass Compiler) [C/C++]

使用

变量

sass 变量用于存储一些常用的颜色,数值等,一个变量可以在多处使用,修改时只需要修改一处

SCSS

$color-primary: #0070e9;

a {
  color: $color-primary;
}

.btn-primary {
  background-color: $color-primary;
}

CSS

a {
  color: #0070e9;
}

.btn-primary {
  background-color: #0070e9;
}
嵌套

Sass 允许嵌套规则,使 CSS 更易于维护。

SCSS

.header {
  height: 60px;
  .navbar {
    display: flex;
    > li {
      flex: 1;
      a {
        dislay: block;
        font-size: 18px;
      }
    }
  }
}

CSS

.header {
  height: 60px;
}
.header .navbar {
  display: flex;
}
.header .navbar > li {
  flex: 1;
}
.header .navbar > li a {
  dislay: block;
  font-size: 18px;
}

⚠️ 尽量控制嵌套数在 4 层以内。

& 引用

Sass 提供了 & 用于引用父选择器。

SCSS

a {
  color: #555;
  &:hover {
    color: #333;
  }
  &:active {
    color: #444;
  }
}

CSS

a {
  color: #555;
}
a:hover {
  color: #333;
}
a:active {
  color: #444;
}
@import

Sass 的 @import 指令用于导入其他样式模块。

假设现有 _variables.scss _buttons.scss _forms.scss 三个模块,可以通过一个 main.scss 导入这些模块。

// main.scss
@import "variables";
@import "buttons";
@import "forms";

子模块文件前面的下划线用于告知 Sass 编译器不要把这个模块编译成单独的 CSS 文件。

嵌套 @import

Sass 的 @import 指令可以嵌套在选择器内,产生嵌套效果。

SCSS

@import "variables";
@import "mixins";

.slamdunk {
  min-width: 320px;
  @import "navbar";
  @import "content";
  @import "players";
}

⚠️ CSS 也有 @import,在 IE 6-8 上会导致多个 CSS 文件不能同时下载的情况,影响网页性能。

运算

Sass 支持对数字标准的算术运算(加法 +,减法 - ,乘法 *,除法 / 和取模 %) 并保留单位。

由于 CSS 中 / 可作为分隔符,因此除法运算要稍微注意以下情况。

p {
  font: 10px/8px;                // 原生的CSS,不作为除法
  $width: 1000px;
  width: $width/2;               // 使用了变量, 作为除法
  width: round(1.5)/2;           // 使用了函数, 作为除法
  height: (500px/2);             // 使用了括号, 作为除法
  margin-left: 5px + 8px/2px;    // 使用了 +, 作为除法
  font: (italic bold 10px/8px);  // 在一个列表(list)中,括号可以被忽略。
}

CSS

p {
  font: 10px/8px;
  width: 500px;
  height: 250px;
  margin-left: 9px;
}
注释

单行注释 // 会在 .scss 被编译成 .css 后移除。

SCSS

// Header
.header {
  height: 60px;
}

CSS

.header {
  height: 60px;
}

多行注释 /* */ 会在 .scss 被编译成 .css 后保留。

编译

假设项目目录下有 css 和 scss 文件夹,运行以下命令会持续观察文件变化并即时编译。

$ node-sass --watch --recursive --output css scss

以下命令具有同等功能,而且更短。

$ node-sass -wro css scss

在终端按 Control + C 停止编译。

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【用于解决 failed Error: not found: python2 node-sass】 报错信息如下: ``` npm WARN prefer global node[email protected] should be installed with -g > node-sass@4.5.2 install E:\workspace_vscode\ww\node_modules\node-sass > node scripts/install.js Downloading binary from https://github.com/sass/node-sass/releases/download/v4.5 .2/win32-x64-48_binding.node Cannot download "https://github.com/sass/node-sass/releases/download/v4.5.2/win3 2-x64-48_binding.node": connect ETIMEDOUT 54.231.72.83:443 Timed out whilst downloading the prebuilt binary Hint: If github.com is not accessible in your location try setting a proxy via HTTP_PROXY, e.g. export HTTP_PROXY=http://example.com:1234 or configure npm proxy via npm config set proxy http://example.com:8080 > node-sass@4.5.2 postinstall E:\workspace_vscode\ww\node_modules\node-sass > node scripts/build.js gyp verb check python checking for Python executable "python2" in the PATH gyp verb `which` failed Error: not found: python2 gyp verb `which` failed at getNotFoundError ``` 这个问题有两个解决方案 1. 按照提示需要 python2 环境,安装python2环境确实可以解决, 网上好多这种(管理员身份执行)。但是当你本来就有python环境时,环境变量不能自动替换,整起来就很麻烦。 ``` npm install --global --production windows-build-tools ``` 2. 第二种解决方案 ,看另一句报错,资源被墙。 ``` Downloading binary from https://github.com/sass/node-sass/releases/download/v4.5.2/win32-x64-48_binding.node Cannot download "https://github.com/sass/node-sass/releases/download/v4.5.2/win32-x64-48_binding.node": ``` 下载此资源即可。下载后需要设置变量路径,防止它再次去下载。 可以设置环境变量 直接右键我的电脑--》属性--》高级系统设置--》环境变量--》添加 或者执行 ``` set SASS_BINARY_PATH=D:\nodejs\tools\node-sass\win32-x64-46_binding.node ``` 再次执行 npm install 成功

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值