Scss学习笔记,持续记录
- 作者: 五速梦信息网
- 时间: 2026年03月21日 04:37
Scss起步
1.Ruby安装
- gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
- gem install sass
- gem install compass
- sass -v (查看当前版本)
2.Node安装
# 全局安装
npm i node-sass -g
#使用
node-sass 源文件 目标文件 -w --output-style compressed
PHPStorm配置FileWatcher:
node-sass $FilePath$ $FileDir$/$FileNameWithoutAllExtensions$.css
// 对应的包管理工具设置node-sass 的镜像源,这里以npm为例
npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass
// 重新安装node-sass包
npm install node-sass
3.编译sass
//单文件转换命令
node-sass input.scss output.css
//单文件监听命令
node-sass --watch input.scss:output.css
//如果你有很多的sass文件的目录,你也可以告诉sass监听整个目录:
node-sass --watch app/sass:public/stylesheets
基础知识
1.Sass 语法格式
.scss.sass
2.Sass 编排格式
nested 编译排版格式
/*命令行内容*/
sass style.scss:style.css --style nested
/*编译过后样式*/
.box {
width: 300px;
height: 400px; }
.box-title {
height: 30px;
line-height: 30px; }
expanded 编译排版格式
/*命令行内容*/
node-sass style.scss:style.css --style expanded /*编译过后样式*/ .box { width: 300px; height: 400px; } .box-title { height: 30px; line-height: 30px; }
compact 编译排版格式
/*命令行内容*/
node-sass style.scss:style.css --style compact /*编译过后样式*/ .box { width: 300px; height: 400px; } .box-title { height: 30px; line-height: 30px; }
compressed 编译排版格式
/*命令行内容*/
node-sassstyle.scss:style.css --style compressed /*编译过后样式*/ .box{width:300px;height:400px}.box-title{height:30px;line-height:30px}
文档阅读笔记
#{}
$name: foo;
$attr: border;
p.#{$name} {
#{$attr}-color: blue;
}
@import
@import "foo.css";
@import "foo" screen;
@import "http://foo.com/bar";
@import url(foo);
@extend
.error {
border: 1px #f00;
background-color: #fdd;
}
.error.intrusion {
background-image: url("/image/hacked.png");
}
.seriousError {
@extend .error;
border-width: 3px;
}
@if、@else、@elseif、@for、@each、@while
$type: monster;
p {
@if $type == ocean {
color: blue;
} @else if $type == matador {
color: red;
} @else if $type == monster {
color: green;
} @else {
color: black;
}
}
@for $i from 1 through 3 {
.item-#{$i} { width: 2em * $i; }
}
$i: 6;
@while $i > 0 {
.item-#{$i} { width: 2em * $i; }
$i: $i - 2;
}
@mixin和@include类似函数声明和函数调用。
scss函数
1.默认参数
@mixin scroll($height:10px,$width:10px) {
/* 滚动条样式 */
&::-webkit-scrollbar {
-webkit-appearance: none;
background: transparent;
width: $width !important;
height: $height !important;
}
}
css转scss
基于工具:https://csspre.com/convert/、http://css2sass.herokuapp.com/
问题总结
1.scss不转换
今天遇到自定义的css变量中,使用scss变量或者函数是,不会被编译(例如rgba函数、或者一个变量编译成css后没有变化)。
最终的解决办法就是使用插值语法。我们定义的变量都为属性值,可直接使用,但是如果变量作为属性或在某些特殊情况下则必须要以 #{$variables} 形式;
$borderDirection: top !default;
$baseFontSize: 12px !default;
$baseLineHeight: 1.5 !default;
// 应用于 class 和属性
.border-#{$borderDirection} {
border-#{$borderDirection}: 1px solid #ccc;
}
// 应用于复杂的属性值
body {
font:#{$baseFontSize}/#{$baseLineHeight};
}
- 上一篇: SaltStack 远程命令执行中文乱码问题
- 下一篇: SEO笔记-友人a的笔记丶








