https://blog.csdn.net/kai_vin/article/details/90763326
安装 scss
这里说一下比较常用的方法,我这里主要是针对项目开发方式的不同,使用两种不同的方法:
模块化开发
模块化开发通常因为会使用gulp、grunt、 webpack等工具,所以scss会作为项目的一个模块来使用,这种情况下,通常是通过npm包管理来下载scss相关插件包,并在项目中设置好让scss能正常工作的配置,关于这些配置,可以看我的webpack4.x系列的样式配置相关文章。
非模块化开发
这里主要说非模块化开发过程中,怎么在自己的项目中使用scss,
安装ruby环境
下载该工具因为外网原因,都是十几KB的速度~,最好是有vpn,没有的话可以使用我网盘里下载好的版本 https://pan.baidu.com/s/1xZaJCKZ85j_LwySgfedFBQ 提取码:1cpw ,这个是64位2.5.1版本。
下载完成后,运行工具,点击 Next,继续向导,记得勾选 Add Ruby executables to your PATH,直到 Ruby 安装程序完成。
完成后,在cmd中输入 ruby -v 如果安装成功,则会显示安装的ruby版本号。
切换源
正常ruby运行环境在国外,国内不能正常运行,需要更换为国内源,可以通过gem sources命令来配置源,先移除默认的https://rubygems.org源,然后添加国内的源https://gems.ruby-china.com,然后查看下当前使用的源是哪个,如果是国内的,就可以开始下载sass了。
执行这些命令需要先打开ruby的终端命令行,开始菜单中搜索ruby 打开Start Command Prompt with Ruby,然后逐步输入以下命令:
// 移除默认源
gem sources —remove https://rubygems.org/
// 添加国内源
gem sources —add https://gems.ruby-china.com
// 查看当前源
gem sources -l
1
2
3
4
5
6
安装 sass
换好源后,输入以下命令:
gem install sass
1
等待安装结束,会显示 sass 的版本,说明安装成功,到这里电脑的环境就算配置完成了。
配置 scss
安装完sass后,项目开发过程中,还需要做能自动编译scss的配置,这里主要介绍两种编辑器的配置方法:
webstrom编辑器
在webstrom中配置scss,就需要每新开一个项目都配置一下,因为该编辑器会在该项目的根目录下生成一个.idea的文件夹,就是独属于这个项目的webstrom配置,配置scss参数的位置:File - Settings - Tools - File Watchers -SCSS,这里找到file watchers后,需要点击+号按钮,添加scss,这里也有sass,但一般都是使用scss,sass在后来改名为scss,但是两者都还能用。
添加了scss后,会弹出弹框如下:
需要配置的就是图中圈中的4项
program是用来找到找到我们安装的sass目录,sass在安装成功后,会在ruby的安装目录bin文件夹下生成一个sass.bat文件,这里就是要找输入这个路径:
arguments就是主要的编译scss的配置参数,里面可以配置压缩、生成sourcemap、生成路径,三个主要作用:
// 在 scss 文件的父目录的 css 中生成 .css 文件,同时生成 sourcemap
—no-cache —update —sourcemap —watch $FileName$:$FileParentDir$\css\$FileNameWithoutExtension$.css
// 在 scss 文件的当前目录下的 css 文件夹下生成 .css 文件,同时生成 sourcemap
—no-cache —update —sourcemap —watch $FileName$:$ProjectFileDir$\css\$FileNameWithoutExtension$.css
// 在 scss 文件的当前目录下 css 文件夹下生成 .css 文件,同时压缩该文件,并生成 sourcemap
—no-cache —update —style compressed —sourcemap —watch $FileName$:$ProjectFileDir$\css\$FileNameWithoutExtension$.css
1
2
3
4
5
6
7
8
—style compressed:生成压缩后的样式文件;
—sourcemap:生成sourcemap文件;
$ProjectFileDir$\css\$FileNameWithoutExtension$.css:当前文件同级的css文件夹下生成与scss文件同名的样式文件;
$FileParentDir$\css\$FileNameWithoutExtension$.css:当前文件父级的css文件夹下生成与scss文件同名的样式文件;
剩下的两个参数不用修改
Working directory: $FileDir$
Output paths to refresh: $FileNameWithoutExtension$.css
1
2
有不需要编译的scss文件,要以_开头命名
到此整个scss的配置就完成了,现在就可以在webstrom中使用scss编写样式了。
vscode编辑器
vscode中使用scss需要在扩展中下载插件支持,在扩展中搜索easy sass,sass,将这两个插件下载下来,之后打开vscode的配置文件:
打开配置文件后,需要点击右上角的{}进行编辑,在配置文件中,添加如下配置:
“files.associations”: {
“*.css”: “scss”,
},
“easysass.compileAfterSave”: true,// 保存scss文件后自动编译
“easysass.excludeRegex”: “_”,// 配置忽略编译的文件格式 eg:_variable.scss
“easysass.formats”: [
{
“format”: “compact”, // 没有缩进、扩展的 compact:简洁格式的 css 代码 nested:嵌套缩进的 css 代码
“extension”: “.css”
},
{
“format”: “compressed”, // 压缩
“extension”: “.min.css”
}
],
“easysass.targetDir”: “./css”,// 自定义css输出文件路径
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
添加完成后重启vscode,就能在vscode中使用scss了,在vscode中,做了配置后,不需要每新开始一个项目都重新配置,这些参数,这里是全局配置。
使用 scss
scss的作用就是让我们在编写样式时,能更方便快捷,能精简代码量,能更易于维护,我觉得这些是最根本最实用的。
这里只简单介绍下,具体scss教程,看官网即可。
变量
// 设置变量
$primary: #2a88c5 !default;//主色
$auxiliary: #de9345 !default;//辅色
// 引用变量
p{
color:$primary;
background-color:$auxiliary;
}
1
2
3
4
5
6
7
8
占位符
// 设置占位 居中
%center-block{
margin-left: auto;
margin-right: auto;
}
// 引用占位
p{
width:300px;
height:200px;
@extend %center-block;
}
1
2
3
4
5
6
7
8
9
10
11
混合宏 mixin
// 设置mixin (闭合子元素浮动)
@mixin clearfix {
&:before,
&:after {
content: “”;
display: table;
}
&:after {
clear: both;
}
}
// 设置占位 引用mixin
%clearfix{
@include clearfix;
}
// 引用占位
ul{
width:100%;
@extend %clearfix;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
嵌套
上面的例子用到了scss的嵌套功能
// 样式中使用嵌套
ul{
width:100%;
@extend %clearfix;
li{
height: 32px;
a{
color:$primary;
&:hover{
color:darken($primary,10%);
}
}
}
}
// 编译结果
ul:before, ul:after { content: “”; display: table; }
ul:after { clear: both; }
ul { width: 100%; }
ul li { height: 32px; }
ul li a { color: #2a88c5; }
ul li a:hover { color: #216b9b; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
上面用到了scss自带的颜色函数darken(),还有lighten()
继承
// 样式中使用继承
.class1{
font-size:19px;
}
.class2{
@extend .class1;
color:black;
}
.class1{
font-weight:bold;
}
// 编译结果
.class1, .class2 { font-size: 19px; }
.class2 { color: black; }
.class1, .class2 { font-weight: bold; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.class2后面设置的.class1也被继承了,由此可以看出scss的编译是递归编译
引用外部样式文件
@import “core/_setting”;
1
这些都是最简单的使用方法,scss的强大不止于此,这里不做详细介绍,官网的教程已经足够优秀~
————————————————
版权声明:本文为CSDN博主「IQkevin」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kai_vin/article/details/90763326