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";`
      }
    }
  },
相关推荐
存储服务专家StorageExpert5 小时前
NetApp NVME SSD 盘的学习笔记
运维·服务器·笔记·学习·存储维护·emc存储·netapp
火车叼位5 小时前
Volta 下 `corepack` 失踪之谜:问题不在 Node,而在命令入口
前端
cmd5 小时前
别再用错!5种JS类型判断方法,从原理到实战一文吃透
前端·javascript
小江的记录本5 小时前
【Redis】Redis常用命令速查表(完整版)
java·前端·数据库·redis·后端·spring·缓存
无聊大侠hello world5 小时前
黑马大模型 RAG 与 Agent 实战学习笔记
笔记·学习
Csvn5 小时前
状态管理方案对比(Context、Zustand、Jotai 选型指南)
前端
snow_yan5 小时前
基于 json-render 的流式表单渲染方案
前端·react.js·llm
承渊政道5 小时前
【优选算法】(实战感悟二分查找算法的思想原理)
c++·笔记·学习·算法·leetcode·visual studio code
wobi_baoyan5 小时前
【已解决】使用Maven打包发生或者启动Spring Boot项目发生 错误: 不支持发行版本 17
服务器·前端·javascript
Dylan~~~5 小时前
Go语言Web框架选型指南:从入门到精通
开发语言·前端·golang