【SCSS变量】$ | | var | @for | @include | @function | @each 等常用方法使用

SCSS优点:编写清晰、无冗余、语义化的CSS,减少不必要的重复工作

  • 1、变量声明(`$`)和使用
  • 2、使用 `&` 代替父元素
  • 3、在HTML中使用 `:style={'--name': 动态值}`自定义属性,在SCSS中用`var(--name)`函数绑定动态变量值,
  • 4、混合器(`@mixin`)和使用(`@include`)
  • 5、给混合器(`@mixin`)定义参数,并使用(`@include`)传参
  • 6、使用 (`@extend`)继承 公共类(元素名、.class)
  • 7、使用 `@function` 和 `@for` 循环语句
  • 8、使用 `@each` 循环

1、变量声明($)和使用

// 用`$`声明变量
$color: red;
// 直接使用变量
span{ color: $color; }
p{ background: $color; }

2、使用 & 代替父元素

a{
	color: red;
	&:hover{
		color: green;
	}
}

3、在HTML中使用 :style={'--name': 动态值}自定义属性,在SCSS中用var(--name)函数绑定动态变量值,

<p v-for="(item, index) in dataList" :key="index" :style="{'--color': item.color}" >{{item.name}}</p>
p{
	color: var(--color);
}
data() {
	return {
		dataList: [
			{name: '红色', color: 'red'},
			{name: '蓝色', color: 'blue'},
			{name: '绿色', color: 'green'}
		]
	}
}

在这里插入图片描述

4、混合器(@mixin)和使用(@include

// @mixin声明混合器: 圆角边框

@mixin round-radius{
	border-radius: 10px;
	background: red;
}
// 使用@include 混入一段重用样式的代码

p{ 
	width: 200px;
	height: 100px;
	@include round-radius;  // @include 使用变量
}

5、给混合器(@mixin)定义参数,并使用(@include)传参

// @mixin声明混合器: a不同状态的颜色参数

@mixin link-colors($normal, $hover, $visited) {
  color: $normal;
  &:hover { color: $hover; }
  &:visited { color: $visited; }
}
// @include 使用变量,并传入实际参数

a {
  @include link-colors(blue, red, green);
}
//Sass编译后最终生成的是:

a { color: blue; }
a:hover { color: red; }
a:visited { color: green; }

6、使用 (@extend)继承 公共类(元素名、.class)

//通过选择器继承继承样式
.error {
  border: 1px solid red;
  background-color: #fdd;
}

.seriousError {
  @extend .error; // 继承
  border-width: 3px;
}

7、使用 @function@for 循环语句

@for 指令可在限制的范围内重复输出格式,每次按要求(变量的值)对输出结果做出变动。
包含两种格式:
@for $var from <start> through <end>  代表 [ start, end ]
@for $var from <start> to <end>  代表 [ start, end },不包含end
另外,$var 可以是任何变量,如 $i;<start><end> 必须是整数值。

用法一:

@for $i from 1 through 3 {
  .item-#{$i} { width: 2em * $i; }
}
// 编译为:
.item-1 { width: 2em; }
.item-2 { width: 4em; }
.item-3 { width: 6em; }

用法二:

// 使用scss随机添加 box-shadow,参数 n = 个数,range = 范围

@function multiple-box-shadow($n, $range) {
  $value: '#{random($range)}px #{random($range)}px #FFF';
  @for $i from 1 through $n {
    $value: '#{$value} , #{random($range)}px #{random($range)}px #FFF';
  }
  @return unquote($value); // 去掉''引号
}
#stars {
  width: 1px;
  height: 1px;
  box-shadow: multiple-box-shadow(700, 2000);
}

利用box-shadow随机画出小方块组成星空
在这里插入图片描述

8、使用 @each 循环

@each $color in red, blue, green{
  .#{$color}-icon {
    background-image: url('/images/#{$color}.png');
  }
}
// 编译为:
.red-icon {
  background-image: url('/images/red.png'); 
}
.blue-icon {
  background-image: url('/images/blue.png'); 
}
.green-icon {
  background-image: url('/images/green.png'); 
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/88311.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

医学图像融合的深度学习方法综述

文章目录 Deep learning methods for medical image fusion: A review摘要引言非端到端的融合方法基于深度学习的决策映射基于深度学习的特征提取 端到端图像融合方法基于卷积神经网络(CNN)的图像融合方法单级特征融合方法多级特征融合基于残差神经网络的图像融合方法基于密集神…

怎么把PDF转成Word?需要注意什么事项?

PDF是一种常见的文档格式&#xff0c;但是与Word文档不同&#xff0c;PDF文件通常不能直接编辑。如果您想编辑PDF文件中的文本&#xff0c;或者想将PDF文件转换为Word文档&#xff0c;下面我们就来看一看把PDF转成Word有哪些方法和注意事项。 PDF转Word工具 有许多将PDF转换为…

RISCV 6 RISC-V加载存储指令

RISCV 6 RISC-V加载存储指令 1 RV32I Load and Store Instructions1.1 LOAD instructions1.1.1 加载指令的指令格式1.1.2 加载指令在使用时需要注意的点 1.2 STORE instructions1.2.1 存储指令的指令格式1.2.2 存储指令在使用时需要注意的点 2 RV64 Load and Store Instruction…

常见前端面试之VUE面试题汇总六

17. MVVM 的优缺点? 优点: 分离视图&#xff08;View&#xff09;和模型&#xff08;Model&#xff09;&#xff0c;降低代码耦合&#xff0c;提⾼视图或者 逻辑的重⽤性: ⽐如视图&#xff08;View&#xff09;可以独⽴于 Model 变化和修改&#xff0c;⼀个 ViewModel 可以…

数据结构基础:P3-树(上)----编程作业01:List Leaves

本系列文章为浙江大学陈越、何钦铭数据结构学习笔记&#xff0c;系列文章链接如下&#xff1a; 数据结构(陈越、何钦铭)学习笔记 文章目录 一、题目描述二、整体思路与实现代码 一、题目描述 题目描述&#xff1a; 给定一棵树&#xff0c;按照从上到下、从左到右的顺序列出所有…

设计模式大白话——命令模式

命令模式 一、概述二、经典举例三、代码示例&#xff08;Go&#xff09;四、总结 一、概述 ​ 顾名思义&#xff0c;命令模式其实和现实生活中直接下命令的动作类似&#xff0c;怎么理解这个命令是理解命令模式的关键&#xff01;&#xff01;&#xff01;直接说结论是很不负责…

微服务中间件--MQ服务异步通信

MQ服务异步通信 MQ服务异步通信a.消息可靠性1) 生产者消息确认2) 消息持久化3) 消费者消息确认4) 消费者失败重试4.a) 本地重试4.b) 失败策略 b.死信交换机1) 初识死信交换机2) TTL3) 延迟队列a) 安装延迟队列插件b) SpringAMQP使用延迟队列插件 c.惰性队列1) 消息堆积问题2) 惰…

docker高级(mysql主从复制)

数据库密码需要设置成自己的&#xff01;&#xff01;&#xff01; 1、创建容器master13307 #docker pulldocker run -p 13307:3306 --name mysql-master \ --privilegedtrue \ -v /mysql/mysql-master/log:/var/log/mysql \ -v /mysql/mysql-master/data:/var/lib/mysql \ -…

【大模型AIGC系列课程 2-2】大语言模型的“第二大脑”

1. 大型语言模型的不足之处 很多人使用OpenAI提供的GPT系列模型时都反馈效果不佳。其中一个主要问题是它无法回答一些简单的问题。 ● 可控性:当我们用中文问AI一些关于事实的问题时,它很容易编造虚假答案。 ● 实时性:而当你询问它最近发生的新闻事件时,它会干脆地告诉你…

Flink_state 的优化与 remote_state 的探索

摘要&#xff1a;本文整理自 bilibili 资深开发工程师张杨&#xff0c;在 Flink Forward Asia 2022 核心技术专场的分享。本篇内容主要分为四个部分&#xff1a; 相关背景state 压缩优化Remote state 探索未来规划 点击查看原文视频 & 演讲PPT 一、相关背景 1.1 业务概况 从…

记录一个用C#实现的windows计时执行任务的服务

记录一个用C#实现的windows计时执行任务的服务 这个服务实现的功能是每天下午六点统计一次指定路径的文件夹大小 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.IO; using Syst…

【1267. 统计参与通信的服务器】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 这里有一幅服务器分布图&#xff0c;服务器的位置标识在 m * n 的整数矩阵网格 grid 中&#xff0c;1 表示单元格上有服务器&#xff0c;0 表示没有。 如果两台服务器位于同一行或者同一列&#xff…

IDEA创建Spring,Maven项目没有resources文件夹

有时新建Spring或Maven项目时&#xff0c;会出现目录中main下无resources文件夹的情况&#xff0c;来一起解决一下&#xff1a; FIles|Project Structure 在Modules模块找到对应路径&#xff0c;在main下创建resources&#xff0c;右键main&#xff0c;选择新文件夹 输入文件…

『C语言入门』初识C语言

文章目录 前言C语言简介一、Hello World&#xff01;1.1 编写代码1.2 代码解释1.3 编译和运行1.4 结果 二、数据类型2.1 基本数据类型2.2 复合数据类型2.3 指针类型2.4 枚举类型 三、C语言基础3.1 变量和常量3.2 运算符3.3 控制流语句3.4 注释单行注释多行注释注释的作用 四、 …

bilibiliDown-极简纯净B站视频解析提取工具

bilibiliDown是一款免费极简纯净B站视频解析提取工具&#xff0c;可一键解析单视频、合集、分集、封面、srt字幕、xml弹幕、ass弹幕、视频下载链接&#xff0c;帮助你轻松将bilibili视频下载到本地电脑或手机相册&#xff0c;工具是一个前后端分离的项目&#xff0c;使用spring…

JMeter分布式集群---部署多台机器进行性能压力测试

有些时候&#xff0c;我们在进行压力测试的时候&#xff0c;随着模拟用户的增加&#xff0c;电脑的性能&#xff08;CPU,内存&#xff09;占用是非常大的&#xff0c;为了我们得到更加理想的测试结果&#xff0c;我们可以利用jmeter的分布式来缓解机器的负载压力&#xff0c;分…

Mobx在非react组件中修改数据,在ts/js中修改数据实现响应式更新

我们都之前在封装mobx作为数据存储的时候&#xff0c;使用到了useContext作为包裹&#xff0c;将store变成了一个hooks使用&#xff0c;封装代码: import React from react import UserInfo from ./user import Setting from ./seting import NoteStore from ./noteclass Stor…

软件开发中常用数据结构介绍:C语言队列

工作之余来写写C语言相关知识&#xff0c;以免忘记。今天就来聊聊C语言实现循环队列&#xff0c;我是分享人M哥&#xff0c;目前从事车载控制器的软件开发及测试工作。 学习过程中如有任何疑问&#xff0c;可底下评论&#xff01; 如果觉得文章内容在工作学习中有帮助到你&…

Microsoft Excel整合Python:数据分析的新纪元

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

【科研】-- 如何将Endnote中参考文献格式插入到Word?

文章目录 如何将Endnote中参考文献格式插入到Word&#xff1f; 如何将Endnote中参考文献格式插入到Word&#xff1f; 1、首先确保Endnote和Word安装正确&#xff0c;正常可以从学校官网中下载到正版软件&#xff0c;下载后在word栏目中会出现EndNote的标签&#xff1b; 2、可…
最新文章