sass笔记

1、mixin deep

css 复制代码
// 样式穿透,作用是在样式中添加:deep(.n-button)
@mixin deep() {
  :deep() {
    @content;
  }
}

使用

css 复制代码
  @include deep() {
    .n-list-item {
      border-bottom: 0!important;
    }
    .n-button {
      height: 40px!important;
    }
  }

2、sass的内置方法map-get

css 复制代码
@function themed($key) {
  /**
  获取属性值,例如获取colors里的primary
   * $colors: (
  primary: #409eff,
  success: #67c23a
);

color: map-get($colors, primary); 
   */
  @return map-get($color, $key);
}

3、拼接公共类名

css 复制代码
// go的混合器,作用生成go-拼接的类名
@mixin go($block) {
  // $namespace是全局的变量go,go+传入类名,拼接成B变量
  $B: $namespace + '-' + $block;
  // 生成类.#{$B},@content;样式占位符
  .#{$B} {
    @content;
  }
}

使用

css 复制代码
@include go(item) {
  display: flex;
  flex-direction: column;
  .name {
    margin-top: 2px;
  }
}

4、属性选择器判断

css 复制代码
@mixin dark {
  // [data-theme='dark']是属性选择器,作用是当data-theme属性为dark时,执行样式
  [data-theme='dark'] {
    @content;
  }
}

5、动态拼id选择器

css 复制代码
@mixin goId($block) {
  $B: $namespace + '-' + $block;
  // 生成id选择器##{$B},@content;样式占位符
  ##{$B} {
    @content;
  }
}

6、减少每个文件都需要引入scss文件,直接在vite.config里配置

css 复制代码
  css: {
    preprocessorOptions: {
      scss: {
        // javascriptEnabled: true,
        additionalData: `@import "src/styles/common/style.scss";`
      }
    }
  },
相关推荐
初一初十14 分钟前
vue3实现的纯前端护肤品商城网站
前端·javascript·vue.js·前端框架
卷帘依旧16 分钟前
React状态管理方案怎么选
前端
zeqinjie22 分钟前
Flutter 折叠屏 iPad / 宽屏适配实践
android·前端·flutter
小村儿39 分钟前
连载13- 内部Tools,Claude Code 怎么真正"动"你的代码
前端·后端·ai编程
IT_陈寒39 分钟前
Python的线程池把我坑惨了,原来异步不是万能的
前端·人工智能·后端
初一初十1 小时前
vue3茶叶商城网站vue网页vuejs前端
前端·javascript·vue.js·vscode·前端框架
kyriewen2 小时前
前端性能优化:LCP 从 4s 到 0.9s 的 5 个核心手段(附配置代码)
前端·javascript·性能优化
AOwhisky2 小时前
MySQL 学习笔记(第六期):MySQL 备份与恢复
运维·数据库·笔记·学习·mysql·云计算
xiaofeichaichai2 小时前
Proxy与Reflect
前端·javascript
小蜜蜂dry2 小时前
nestjs实战-权限二:角色模块
前端·后端·nestjs