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";`
      }
    }
  },
相关推荐
幼儿园技术家9 小时前
前端如何设计权限系统(RBAC / ABAC)?
前端
前端摸鱼匠11 小时前
Vue 3 的v-bind合并行为:讲解v-bind与普通属性合并的规则
前端·javascript·vue.js·前端框架·ecmascript
REDcker11 小时前
浏览器端Web程序性能分析与优化实战 DevTools指标与工程清单
开发语言·前端·javascript·vue·ecmascript·php·js
OBiO201312 小时前
Cell | 突破AAV载体容量限制!路中华/姜玉武/刘太安团队开发AAVLINK系统实现大基因递送
笔记
donecoding13 小时前
一个 sudo 引发的血案:npm 全局包权限错乱彻底修复
前端·node.js·前端工程化
智者知已应修善业13 小时前
【51单片机2个按键控制流水灯运行与暂停】2023-9-6
c++·经验分享·笔记·算法·51单片机
风骏时光牛马13 小时前
Raku正则匹配与数据批量处理实操案例
前端
nbwenren13 小时前
2026实测:Gemini 3 镜像站视觉能力实践——拍照原型图,一键生成 HTML+CSS 代码
前端·css·html
Lee川13 小时前
Prisma 实战指南:像搭积木一样设计古诗词数据库
前端·数据库·后端