前端SCSS高级用法

1. @extend

@extend 用于让一个选择器继承另一个选择器的样式,减少代码重复。

.button {
  padding: 10px 20px;
  color: white;
  background-color: blue;
}

.primary-button {
  @extend .button;
  background-color: green;
}

2. 变量

使用变量存储重复使用的值,如颜色、字体大小等。

$primary-color: blue;
$padding: 10px;

.button {
  padding: $padding;
  color: white;
  background-color: $primary-color;
}

3. 嵌套规则

允许以层次结构的方式组织CSS规则。

.nav {
  ul {
    list-style: none;
  }

  li {
    display: inline-block;
  }

  a {
    text-decoration: none;
    color: $primary-color;

    &:hover {
      color: darken($primary-color, 10%);
    }
  }
}

4. 混合(Mixins)

定义可重复使用的代码块,可以接受参数。

@mixin border-radius($radius) {
  -webkit-border-radius: $radius;
  -moz-border-radius: $radius;
  border-radius: $radius;
}

.box {
  @include border-radius(10px);
}

5. 函数

支持自定义函数以执行复杂运算。

@function calculate-spacing($base, $multiplier) {
  @return $base * $multiplier;
}

.container {
  padding: calculate-spacing(10px, 2);
}

6. 控制指令

使用 @if, @else if, @else, @for, @each, @while 进行条件判断和循环。

@mixin respond-to($media) {
  @if $media == 'phone' {
    @media (max-width: 600px) { @content; }
  } @else if $media == 'tablet' {
    @media (max-width: 768px) { @content; }
  }
}

.container {
  @include respond-to('phone') {
    background-color: yellow;
  }
}

7. 导入(@import)

将样式拆分到多个文件中,提升代码的模块化和可维护性。

// main.scss
@import 'variables';
@import 'mixins';
@import 'base';
@import 'layout';
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值