关于sass的一些用法

文章介绍了SCSS中的核心特性,包括嵌套选择器提高CSS编写效率,使用变量统一样式管理,@mixin实现样式复用,以及%placeholder简化代码结构。这些特性使得SCSS成为更强大和易维护的CSS预处理器。

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

  1. 嵌套选择器

允许将一套css样式嵌套到另一套样式中,内层的样式将它外层的样式当做父选择器

HTML

<div><p>Hello scss</p></div>

scss

div {
    p {
        color: red
    }
}

编译为css

div p {
    color:red
}

父选择器还可以用&来代替,下面一段代码实例

编译后

总之嵌套功能避免了重复输入父选择器,而且令复杂的 CSS 结构更易于管理,还可以有更加复杂的嵌套

  1. 变量

scss最普遍的就是声明变量,然后在其他的文档中引入,这样方便修改整体的样式,声明变量的方式就是使用$来声明变量.

scss

$red:color
$green:green

p {
    color:$red
}
span {
    color:$green
}

编译后的css

p {
    color:red
}
span {
    color:green
}

关于变量的类型有以下6种

  1. 数字,1, 2, 13, 10px

  1. 字符串,有引号字符串与无引号字符串,"foo", 'bar', baz

  1. 颜色,blue, #04a3f9, rgba(255,0,0,0.5)

  1. 布尔型,true, false

  1. 空值,null

  1. 数组 (list),用空格或逗号作分隔符,1.5em 1em 0 2em, Helvetica, Arial, sans-serif

  1. maps, 相当于 JavaScript 的 object,(key1: value1, key2: value2)

  1. mixin

定义指令混入@mixin 可以将定义的指令混入到一个元素的样式里面去,混入的方式是使用@include 来混入

@minxin

@include

其中mixin还可以定义为函数,还可以传递参数

SCSS

@mixin mix($width) {
  border: $width solid red;
}

body {
  p {
    @include mix(2px);
    color: red;
    &:hover {
      color: green;
      @include mix(6px);
    }
  }
}

编译为css

body {
  p {
    border: 2px solid red;
    color: red;
    p:hover {
      color: green;
      border: 6px solid red;
    }
  }
}

@mixin和@include一般也可以用代码复用

  1. placeholder

placeholder跟mixin差不多,但是其中的实现原理却不相同,还是相同的代码,我们使用placeholder来定义一下

scss

%mix {
  border: 1px solid red;
}

body {
  p {
    @extend %mix;
    color: red;
    &:hover {
      color: green;
      @extend %mix;
    }
  }
}

我们通过%来定义,通过extend来引入,这看起来跟mixin的作用相同,甚至还不能像mixin一样写成函数,但是它的编译后的代码却跟mixin不同

编译后css为

body p:hover, body p {
  border: 1px solid red;
}

body p {
  color: red;
}
body p:hover {
  color: green;
}

可以发现,我们通过mixin定义的内容会复制到标签中,而通过placeholder定义的内容不会引入到标签中,而是将元素中有extend的那个选择器放到placeholder上。

以上就是我对scss用法的总结,如有不足之处望请指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值