SASS(接node.js)

本文介绍SASS的基础使用方法,包括变量、嵌套、混合器、继承及导入等功能,并讲解如何设置监视命令以自动编译SCSS文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SASS

解决CSS中的一些问题

文件后缀为scss

简单使用sass

使用前需要下载工具sass:

npm i  sass -g

下载好后:

sass --version

检测是否安装

然后编写scss文件:

$color:red;//相当于定义变量
div {
	background-color:$color;//直接使用变量名就可以了
}

编写好的文件需要转成css:

sass   初体验.scss   ./初体验.css			将初体验.scss编译到当前文件夹下初体验.css

同时生成的.css.map是记录版本等信息的,没什么用

sass使用命令

后缀:scss和sass两种

为什么不用sass后缀?

sass语法格式:

div
	color:red;

sass后缀容易写乱(需要缩进,没得括号)

其实css预处理语言不止sass,还有less等,语法差不多

监视命令

因为sass文件内容是不断变化的(因为我们不断写入,那么不断编译就很麻烦),于是有了监视命令

sass  --watch   初体验.scss   初体验.css

命令结束就停止监视

没写完就编译,然后输出报错信息,看着不舒服可以将编辑器(vscode之类的)的自动编译关了,手动保存

写完一个文件还要命令来编写另外一个文件,十分麻烦,于是sass提供了另外一个命令:

监视某个文件夹内的变化:

sass  --watch  sass:css

监视sass文件内的变化,将编译好的文件放在同级的css的文件夹下

这个命令是要在项目文件夹下执行

sass注释,变量,嵌套

注释

单行注释//

多行注释/**/

单行不会被编译,多行会被编译,后期压缩还是会取消掉多行注释的

强制保留的话:

/*!
多行注释
*/

加个感叹号强制保留

变量

语法:

$变量名:值;

值是不需要加引号的

$width:20px;
div {
	width:$width*10;//变量是可以进行运算的
}

嵌套

/*
<div class="container">
   <div class="content">
        <div class="left">
            <p>
                <a href="#">注册</a>
                <a href="#">登录</a>
            </p>
        </div>
        <div class="right></div>
   </div>
</div>
*/
.container{
    //后代选择器
    .content {
        width:20px;
    }
    //子元素选择器
    >.content{
        width:30px;
        .left {
            width:50px;
            //兄弟选择器
            +.rigth{
                color:red;
            }
            //&表示当前选择器本身
            &:hover {
                color:blue;
            }
        }
        //鼠标移入效果
        .left:hover {
            color:green;
        }
    }
}


//css属性嵌套
div{
    // border:1px solid black;以前的写法可以用,但没必要
    border:{
        left:1px solid #000;
        top:2px solid red;
    }
}

//只有带横杠的属性才能嵌套

混合器,继承,导入

混合器

就是函数,只不过在sass里面改了称呼

定义和使用
//定义混合器
@mixin bor{
	border:1px solid red;
}

//使用混合器
div {
	@include bor;//调用:@include  函数名;
}


//带参数的定义
@mixin bac($color,$img,$repeat){
	background:$color url($img)  $repeat;
}
//使用
div {
	@include bac(red,'1.jpg',no-repeat)
}

继承

为什么要继承:一个选择器想要使用另一个选择器的样式,就需要继承

.login {
	border:1px solid #000;
	color:red;
}
.content {
	//想使用.login的样式
	@extend  .login;			//语法
	width:20px;
}

下面还有种情况(只想继承一小部分):

div{
    width:20px;
    height:30px;
}
p {
    width:20px;
    hieght:80px;
}
h2 {
    //想要有width:20px
    border:solid;
}

可以将公共样式提取出来

_{

​ width:20px;

}

div,p都@extend _;h2也一样

导入

先写一个变量.scss:

$width:1px;
$width1:3px;
$width:300px;
 
$red:red;
$blue:blue;
$green:green;

再写一个混合器.scss:

@mixin bor($width,$style,$color){
    border:$width $color $style;
}
@mixin back($color,$img,$repeat){
    background:$color url($img) $repeat;
}

index.css想要导入这两个文件:

//需要将变量.scss和混合器.scss导入进来
@import "变量.scss"; 
@import "混合器.scss";
div {
    color:$red;
    @include bor($width,$blue,dotted);
}

相当于public.css的功能(公共样式)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值