sass 语法综合案例

收录了一些日常使用sass的案例集合,不定期更新

一般写业务,基础 sass的 语法足够了, 偶尔遇到有意思的,就记录并学习一下

scss 复制代码
@use 'sass:math';

@for $i from 0 to 9 {
	// $i从0开始
	.box:has(.item:nth-child(#{$i + 1}):hover) {
		$r: math.floor(calc(math.div($i, 3) + 1)); // 取值1-3
		$c: $i % 3 + 1; // 取值1-3

		// 初始化状态, 下面只需要根据当前鼠标 hover到哪一行,哪一列, 将对应的 行的占比 改为 2fr, 列改为2fr
		$arr: 1fr 1fr 1fr;
		// 动态修改 @arr 的值, 比如 $r = 1, 则@arr: 1fr 2fr 1fr;   将索引下标为1的值,改为2fr
		$rows: set-nth($arr, $r, 2fr);
		$columns: set-nth($arr, $c, 2fr);

		grid-template-rows: $rows;
		grid-template-columns: $columns;
	}
}
  • 除法的使用
  • 控制一个数在一定的范围
  • 取模 %
  • 动态修改一组值
  • 循环

最终编译为:

css 复制代码
.box:has(.item:nth-child(1):hover) {
  grid-template-rows: 2fr 1fr 1fr;
  grid-template-columns: 2fr 1fr 1fr;
}

.box:has(.item:nth-child(2):hover) {
  grid-template-rows: 2fr 1fr 1fr;
  grid-template-columns: 1fr 2fr 1fr;
}

.box:has(.item:nth-child(3):hover) {
  grid-template-rows: 2fr 1fr 1fr;
  grid-template-columns: 1fr 1fr 2fr;
}

.box:has(.item:nth-child(4):hover) {
  grid-template-rows: 1fr 2fr 1fr;
  grid-template-columns: 2fr 1fr 1fr;
}

.box:has(.item:nth-child(5):hover) {
  grid-template-rows: 1fr 2fr 1fr;
  grid-template-columns: 1fr 2fr 1fr;
}

.box:has(.item:nth-child(6):hover) {
  grid-template-rows: 1fr 2fr 1fr;
  grid-template-columns: 1fr 1fr 2fr;
}

.box:has(.item:nth-child(7):hover) {
  grid-template-rows: 1fr 1fr 2fr;
  grid-template-columns: 2fr 1fr 1fr;
}

.box:has(.item:nth-child(8):hover) {
  grid-template-rows: 1fr 1fr 2fr;
  grid-template-columns: 1fr 2fr 1fr;
}

.box:has(.item:nth-child(9):hover) {
  grid-template-rows: 1fr 1fr 2fr;
  grid-template-columns: 1fr 1fr 2fr;
}
相关推荐
DsirNg4 小时前
断点不该认识设备:组件布局的容器状态治理
css·前端工程化·组件化·响应式布局·css grid·设计系统·container queries
溪语流沙13 小时前
【每天一个CSS | Day11】赛博朋克故障风文字:红青分离 + 切片抖动
前端·css
utmhikari1 天前
【AI原生】借助AI之力优化个人博客前端样式
前端·css·hexo·next·个人博客·ai-native·vibe coding
两个西柚呀2 天前
JS事件总结
前端·javascript·css
ss2732 天前
AI全栈实战 | 2.1-02 CSS 布局:垂直居中为什么是经典面试题?所有布局在解决什么矛盾
前端·css
peter67683 天前
css揭秘-背景和边框
前端·css
溪语流沙4 天前
【每天一个CSS | Day08】整排按钮被鼠标吸走的磁吸导航
前端·css·计算机外设
peter67684 天前
css学习小结
前端·css·学习
liangshanbo12154 天前
什么是CSS原子化?它的优劣势是什么?
前端·css·tensorflow·css原子化
Flynt4 天前
Linear 用 1000 个 PR 换掉 styled-components,我写了 200 个按钮,把这笔账复现了一遍
前端·css·preact