当前位置: 首页 > news >正文

scss(sass)中 的使用说明

在 SCSS(Sass)中,& 符号是一个父选择器引用,它代表当前嵌套规则的外层选择器。主要用途如下:


1. 连接伪类/伪元素

scss

复制

下载

.button {background: blue;&:hover {  // 相当于 .button:hoverbackground: darkblue;}&::after { // 相当于 .button::aftercontent: ">";}
}

编译结果:

css

复制

下载

.button {background: blue;
}
.button:hover {background: darkblue;
}
.button::after {content: ">";
}

2. 串联选择器(BEM 风格命名)

scss

复制

下载

.menu {&__item {   // 相当于 .menu__itemcolor: red;}&--dark {   // 相当于 .menu--darkbackground: black;}
}

编译结果:

css

复制

下载

.menu__item {color: red;
}
.menu--dark {background: black;
}

3. 嵌套上下文

scss

复制

下载

.page {.dark-theme & { // 相当于 .dark-theme .pagebackground: #333;}
}

编译结果:

css

复制

下载

.dark-theme .page {background: #333;
}

4. 避免重复书写父选择器

scss

复制

下载

.card {&-header { ... }  // .card-header&-body { ... }    // .card-body&-footer { ... }  // .card-footer
}

⚠️ 注意事项

  • & 必须写在选择器开头&hover(错误)❌ → &:hover(正确)✅

  • 深层嵌套时& 会引用完整的选择器链:

    scss

    复制

    下载

    .a {.b & { // 编译为 .b .a}
    }

总结

场景示例编译结果
伪类&:hover.parent:hover
BEM 命名&__item.parent__item
修改上下文.context &.context .parent
简化重复前缀&-suffix.parent-suffix

合理使用 & 能让 SCSS 代码更简洁、可读性更强,特别适合组件化开发和 BEM 命名规范!

http://www.xdnf.cn/news/902629.html

相关文章:

  • 装载机防撞系统:智能守护,筑牢作业现场人员安全防线
  • 智绅科技 —— 智慧养老 + 数字健康,构筑银发时代安全防护网
  • JVM虚拟机:内存结构、垃圾回收、性能优化
  • 用设计模式重新思考(类FSM)验证:从混乱到优雅
  • 无人机定位系统技术设计与难点突破!
  • 项目管理的五个阶段有哪些核心功能?项目管理过程需要注意什么?
  • LlamaFactory × 多模态RAG × Chat-BI:万字长文探寻RAG进化轨迹,打造卓越专业AI助手
  • 20250606-C#知识:泛型与非泛型容器的基本操作
  • gitlab CI/CD本地部署配置
  • maven微服务${revision}依赖打包无法识别
  • 【数据结构】B树
  • linux操作系统笔记1
  • 鸿蒙开发 获取当前页面的路径和名字
  • 深入理解指针(二)
  • 文件上传漏洞深度解析:检测与绕过技术矩阵
  • 深入理解 transforms.Normalize():PyTorch 图像预处理中的关键一步
  • Web 架构之 CDN 加速原理与落地实践
  • Significant Location Change
  • 筛选企业订单和业绩显著增长的标的
  • 联想困局,破于AI?
  • 【Kotlin】注解反射扩展
  • 【大厂机试题解法笔记】区间交集
  • 浏览器工作原理05 [#] 渲染流程(上):HTML、CSS和JavaScript是如何变成页面的
  • ES6——对象扩展之Set对象
  • springMVC-10验证及国际化
  • LangChainGo入门指南:Go语言实现与OpenAI/Qwen模型集成实战
  • React 第五十五节 Router 中 useAsyncError的使用详解
  • Editing Language Model-based Knowledge Graph Embeddings
  • 多线程下使用缓存+锁Lock, 出现“锁失效” + “缓存未命中竞争”的缓存击穿情况,双重检查缓存解决问题
  • 《深度探秘:Java构建Spark MLlib与TensorFlow Serving混合推理流水线》