sass、scss

本文介绍了SASS的安装过程,包括需要先安装Ruby,并使用gem安装SASS和Compass。SASS是一种强于CSS的预处理器,而SCSS是其CSS3语法的超集。SASS使用空格分隔,而SCSS更接近CSS的语法。文章还提及了SASS的一些常用语法,如变量、选择器嵌套、属性嵌套、文件导入、混合器等。

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

sass、scss

sass的安装

sass基于Ruby语言开发,所以在安装sass前需要安装Ruby,安装时需要注意勾选Add Ruby executables to your PATH添加系统环境变量

在有Ruby之后在vsCode中直接使用gem install sass、gem install compass来进行安装。

SASS转换成CSS有两种 可以使用 sass sass文件路径 需要导出到的css路径或者sass sass–watch 文件路径 需要导出到的css路径,在使用SASS导出时路径不要允许出现中文,否则会报错。

SASS和SCSS介绍

SASS

它是一种高于CSS的语言,他能清晰、结构化地描述样式,所以在使用时他比CSS更好,比CSS更加强大。他的扩展名都是.sass,它使用时没有大括号,它是以空格来区分属性和选择器的,属性和属性值中间需要隔一个空格。

$num = 100;
div 
     width: $num//写入语法时一定要注意空格的使用,属性值前一定要有空格,不然就会报错。
     height: $num
     background-color: blue
SCSS

SCSS是SASS 3 引入的新语法,是css3语法的超集,也就是所有有效CSS3样式也是同样适合于SASS,他的扩展名是.scss,他就可以使用花括号,这样就和我们写

$num:50px;
div{
    width:$num;
    height: $num;
    background-color: blue;
}

它的写法很贴近CSS,所以更适合我们去使用,SCSS就是SASS的升级版。

SASS常用一些语法

变量的声明

$color:red;
$width:300;//直接使用$符号来声明变量,后面用冒号连接。

选择器的嵌套

div{
   span{color: $color_1}
   div{color: $color_2}
}//直接在标签中书写,表示div后代中的span,div,如果向表示子代只需要在前面使用>就可以。

父选择器 $

div{
  color: red;
  &:hover{
    color: blue;
  } //$就是指div本身,他的意思就是给div自身加了hover效果。
}

选择器的嵌套

div{
   ~ div{  border-top: 1px dashed #ccc }//div后所有div兄弟元素
   > span { background: #eee }//div中所有子代的span标签
    nav + & { margin-top: 0 }//div中nav后的第一个div兄弟元素
}

属性嵌套

div{
    border{
        style:red;
        width:1px;
        color:#ccc
    }
}//将div的border属性拆分。

导入文件

@import 'a';//导入a.sass文件,不用写后缀

普通类型混合器

@mixin divRadius{
      width:50px;
      height:50px;
      border-radius:25px
}//定义一个混合器 就类似与函数 使用@mixin
div{
    @include divRadius;//使用@include调用 类似于调用函数
}

传参混合器

@mixin divRadius($a){
      width:$a;
      height:$a;
      border-radius:$a/2
}//在定义后的括号中传参
div{
    @include divRadius(50px);//传入参数
}

混合器传参默认值

@mixin divRadius($a:50px){//直接给参数一个默认值
      width:$a;
      height:$a;
      border-radius:$a/2
}//在定义后的括号中传参
div{
    @include divRadius;
}

继承

.div1{
     width:50px;
     height:50px;
     background-color:red
}
.div2{
    @extend .div1;//直接使用extend来继承,这样.div2就拥有了.div1的样式
}

条件语句

@@mixin setBlock($w,$h,$c:red) {
    @if $w>500px {$w:500px}//直接使用@if作为条件语句
    @else if $w<50px {$w:50px}//@else当条件不满足时进入
    width: $w;
    height: $h;
    background-color: $c;
}

循环

@for $i from 1 through 3{
    .item-#{$i} {//相当于字符串模板
         @include setBlock(50px*$i ,50px*$i);
    }
 }//类似于for循环从1到3
@each $name in a , b , c , d {
    #{$name}-img{
        background-image: url('#{$name}.jpg');
    }
}//类似于for each循环

更多写法可以直接去SASS官网上查询 https://www.sass.hk/。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值