多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
关于sass: Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目。 点击链接可进入sass官网 文件后缀是.scss,在此之前我们先一步一步对页面进行样式测试。 1.进入web端 ``` cd web ``` ``` npm run serve ``` ![](https://img.kancloud.cn/92/07/9207c8c80b441663a6f26da93e1052db_521x386.png) 如果admin端已经开启8080端口,再开启web端就是8081端口了。 ![](https://img.kancloud.cn/e3/24/e3241391bc6649f189be8806ec9fce59_1391x1192.png) 此时我们在web文件夹中添加style.css文件,设置页面样式: ![](https://img.kancloud.cn/ac/1d/ac1db3ae70490237317d24b7e9d6f35b_1260x855.png) 再到main.js引入该页面样式文件: ![](https://img.kancloud.cn/06/c7/06c77ebba5981b75edd510458d0e1730_1260x855.png) 页面发生了变化,效果样式css的引入没问题: ![](https://img.kancloud.cn/76/18/761825ee1553ef82024c7b2f0a3c7995_375x706.png) 2.安装sass (1)我们先把style.css文件后缀改为.scss,然后main.js同样对引入的style文件进行修改: ![](https://img.kancloud.cn/e1/7e/e17edff871e6bf4377c88d205d860341_1260x855.png) 此时页面报错,说在web端文件中找不到sass-loader: ![](https://img.kancloud.cn/a5/ac/a5acf50a9cff7f2bed18b0aed22a0018_375x706.png) (2)我们安装sass-loader: ``` cd web ``` ``` npm i -D sass-loader ``` 由于sass是强化css的辅助工具,所以只在我们开发时使用sass,待我们项目完成上线时sass就没有任何作用了。所以我们使用-D在生产环境安装。 -D即–dev(生产) 包名会被注册在package.json的devDependencies里面,仅在开发环境下存在的包用-D,如babel,sass-loader这些解析器 ![](https://img.kancloud.cn/f2/25/f2257d7e7c114ab5165b679783996838_677x210.png) 可惜,可惜,无论如何都安装不成功:)想尽一切办法 最终,我简单粗暴地安装了cnpm,使用cnpm下载了node-sass和sass-loader,原因是sass-loader依赖于node-sass,npm都下载不成功,大家如果npm下载不成功也可以使用cnpm: ``` npm i cnpm cnpm i node-sass -d cnpm i sass-loader -d ``` ![](https://img.kancloud.cn/6c/8f/6c8f305bafc4863fa52fcb8d9ff49e1c_1258x855.png) 可能是由于淘宝当时引入的cnpm库中的sass-loader没有被更新,好像sass安装后来被官方改为只能由ruby安装等原因,但是不深究,我们得到结果就好。 ![](https://img.kancloud.cn/2b/1d/2b1d5d727d500b8ce1d6805601ceaa25_1072x1084.png) 安装sass-loader成功之后,页面发生了变化: ![](https://img.kancloud.cn/42/f9/42f92e680dc1e53523d6919283162c7c_375x706.png) 应该是sass-loader版本号太高所致,此时vue-cli中使用到的webpack不能使用版本过高的sass-loader,所以我们下载7.3.1版本: ``` cnpm install sass-loader@7.3.1 -D ``` ![](https://img.kancloud.cn/c9/17/c917dc31cc8100d9f87eb6f06dbea466_814x122.png) 重新进入web端 ctrl + c y回车 ``` npm run serve ``` 进入后页面再次发生变化,此时显示node-sass版本过高,让我们使用4.0.0版本: ![](https://img.kancloud.cn/8b/eb/8bebde3734b8ed41dd41bff48231b951_375x706.png) 这时我们卸载之前版本的node-sass,安装4.0.0版本 ``` cnpm uninstall node-sass ``` ``` cnpm i node-sass@4.14.1 -d ``` 安装完成后,再次重启web端。此时页面正常进入: ![](https://img.kancloud.cn/76/18/761825ee1553ef82024c7b2f0a3c7995_375x706.png) 3.使用sass 因为sass是css工具,所以.scss文件可以使用css一切样式,这时我们测试第一个功能——嵌套。 首先我们修改当前vue页面元素: ![](https://img.kancloud.cn/61/f9/61f95403bdfede0519850ce0b9af97f3_1258x855.png) ![](https://img.kancloud.cn/21/00/210037c9f1efa091e14c2a1f1985d3b0_375x572.png) 这时我们使用嵌套方法: 就像html语言中的嵌套元素一样,把元素按父子级嵌套。 ``` p{ color:red; } .a{ background:red; p{ color: blue; } } ``` ![](https://img.kancloud.cn/cf/3f/cf3fbada9cb61c8382a6c74cff9aa850_375x572.png) 4.总结 sass的优势:sass通过变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,增加了效果样式css的复用性、美观性和易读性。 接下来的文章中我们就会使用sass编辑前端样式,一起学习sass除嵌套以外的其他功能。