赞
踩
这里说一下比较常用的方法,我这里主要是针对项目开发方式的不同,使用两种不同的方法:
模块化开发通常因为会使用gulp
、grunt
、 webpack
等工具,所以scss
会作为项目的一个模块来使用,这种情况下,通常是通过npm
包管理来下载scss
相关插件包,并在项目中设置好让scss
能正常工作的配置,关于这些配置,可以看我的webpack4.x系列的样式配置相关文章。
这里主要说非模块化开发过程中,怎么在自己的项目中使用scss
,
1cpw
,这个是64
位2.5.1
版本。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
gem install sass
等待安装结束,会显示 sass
的版本,说明安装成功,到这里电脑的环境就算配置完成了。
安装完sass
后,项目开发过程中,还需要做能自动编译scss
的配置,这里主要介绍两种编辑器的配置方法:
在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
--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
scss
文件,要以_
开头命名scss
的配置就完成了,现在就可以在webstrom
中使用scss
编写样式了。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输出文件路径
添加完成后重启vscode
,就能在vscode
中使用scss
了,在vscode
中,做了配置后,不需要每新开始一个项目都重新配置,这些参数,这里是全局配置。
scss
的作用就是让我们在编写样式时,能更方便快捷,能精简代码量,能更易于维护,我觉得这些是最根本最实用的。
这里只简单介绍下,具体scss
教程,看官网即可。
// 设置变量
$primary: #2a88c5 !default;//主色
$auxiliary: #de9345 !default;//辅色
// 引用变量
p{
color:$primary;
background-color:$auxiliary;
}
// 设置占位 居中
%center-block{
margin-left: auto;
margin-right: auto;
}
// 引用占位
p{
width:300px;
height:200px;
@extend %center-block;
}
// 设置mixin (闭合子元素浮动) @mixin clearfix { &:before, &:after { content: ""; display: table; } &:after { clear: both; } } // 设置占位 引用mixin %clearfix{ @include clearfix; } // 引用占位 ul{ width:100%; @extend %clearfix; }
上面的例子用到了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; }
上面用到了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; }
.class2
后面设置的.class1
也被继承了,由此可以看出scss
的编译是递归编译
@import "core/_setting";
这些都是最简单的使用方法,scss
的强大不止于此,这里不做详细介绍,官网的教程已经足够优秀~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。