2022-04-17 Sass学习笔记(二) Sass的语法:变量,条件分支,循环,mixin

2023-11-10

1.变量
常见使用场景

把css文件中经常使用的颜色设置为一个变量,
当用户需要不同的主题时,只需要改变此变量的值即可,
而不是修改每一个css文件中涉及到背景色,字体颜色的代码行

语法
$variablename: value;

定义:$变量名:变量值

使用:元素属性名:$变量名

示例

index.scss

$color1:blue;
$color2:white;
$num:150px;
div {
    height: $num*2;
    width: $num*2;
    background-color: $color1;
    p {
        height: $num;
        width: $num;
        margin: 0 auto;
        background-color: $color2;
        border-radius: 50%;
    }
}

生成的index.css

div {
  height: 300px;
  width: 300px;
  background-color: blue;
}

div p {
  height: 150px;
  width: 150px;
  margin: 0 auto;
  background-color: white;
  border-radius: 50%;
}
2.条件分支
常见使用场景
语法
@if(判断语句){
	css代码1
}
@else{
	css代码2
}
示例

game.scss

$hand:"left";
@if($hand=="right") {
    #box {
        width: 100px;
        height: 100px;
        background-color: black;
    }
}

@else {
    #box {
        width: 100px;
        height: 100px;
        background-color: red;
    }
}

game.css

#box {
  width: 100px;
  height: 100px;
  background-color: red;
}
3.循环
常见使用场景

子节点的元素样式的属性值呈规律性递增时使用循环
在这里插入图片描述

语法
1.@for 指令

@for 指令可以用于循环生成样式,有两种类型,如下所示:

第一种:使用关键字 to 不会包括 end 这个数

@for $变量名 from <起始值> to <结束值>

第二种:使用关键字 through 时会包括 end 这个数

@for $变量名 from <起始值> through <结束值>
2.@each 指令

@each 指令可以用于遍历一个列表,然后从列表中取出对应的值

@each $变量名 in <数组>
示例一:for循环li节点的样式

box.scss

//css的循环是从1开始的,js的循环是从0开始的
@for $item from 1 to 6 {
    li:nth-child(#{$item}) { // 注意此处选择器的格式:"#"号表示{}里面是js语法
        width: 100px;
        height: 100px;
        background: pink;
        position: absolute;
        top: ($item - 1)*100px;
        left: ($item - 1)*100px;
        // top: $item*100px;
        // left: $item*100px;
    }
}

生成box.css


li:nth-child(1) {
...
  top: 0px;
  left: 0px;
}

...

li:nth-child(5) {
...
  top: 400px;
  left: 400px;
}
示例二:each…in节点的样式

scss文件:

$col:red blue green;//颜色列表
@each $item in $col {
    $index: index($col, $item);//此处调用了系统的索引函数index(list,item)
    li:nth-child(#{$index}) {
        background: $item;
    }
}

css文件:

li:nth-child(1) {
    background: red;
}
li:nth-child(2) {
    background: blue;
}
li:nth-child(3) {
    background: green;
}
4.混合(Mixin)

@mixin 指令允许我们定义一个可以在整个样式表中重复使用的样式。

@include 指令可以将混入(mixin)引入到文档中。

语法

定义一个混入

@mixin mixin-name{
	css样式
}

使用混入

selector {
  @include mixin-name;
}
示例

scss:

@mixin liStyle {//设置
    width: 150px;
    height: 150px;
}

li:nth-child(1) {
    @include liStyle();//引入
    background: red;
}

li:nth-child(2) {
    @include liStyle();
    background: blue;
}

li:nth-child(3) {
    @include liStyle();
    background: green;
}

css:

li:nth-child(1) {
  width: 150px;
  height: 150px;
  background: red;
}

li:nth-child(2) {
  width: 150px;
  height: 150px;
  background: blue;
}

li:nth-child(3) {
  width: 150px;
  height: 150px;
  background: green;
}
5.知识点
5.1.索引函数$idx:index($list,$item)
5.2.css的循环是从1开始的
5.3.浏览器兼容性
-moz- 是火狐浏览器厂商前缀
-webkit- 是谷歌浏览器厂商前缀
-o- 是opera浏览器厂商前缀
5.4.html的p标签中不能再嵌套其他标签
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2022-04-17 Sass学习笔记(二) Sass的语法:变量,条件分支,循环,mixin 的相关文章

  • 理解 z-index:该元素如何出现在其父级同级元素的前面?

    为什么当我删除时红色 div 位于绿色 div 前面z index from wrapperRed 感觉像z index是沿着链条向上继承的 如果我改变z index将绿色 div 更改为 6 即使删除第一句中描述的行后 它仍保留在红色 d
  • 将鼠标悬停在原点时会触发translateY()

    当您将光标移动到按钮底部时 是否可以无限期地不触发动画 它看起来是这样的 gif https i stack imgur com QwdHW gif and codepen https codepen io jaeyson pen GwwJ
  • Sass:@use 出错,未定义变量

    我正在使用 Sass 并且想要使用 use关键字而不是 import 因为 import有很多问题 另外只有dart sass支持这个功能 我将node sass改为dart sass 然而 问题出现了 我原来的代码 import carb
  • Bootstrap:如何将按钮组对齐在中心(垂直)

    在下面的代码中
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • 如何检测一个或多个 JS/CSS 库加载失败(例如 CDN)?

    Premise 我找到了这两个答案 但我不明白如何将它系统地应用于许多库 检测并记录外部 JavaScript 或 CSS 资源加载失败的情况 https stackoverflow com questions 5683824 detect
  • SVG 动画不适用于 Chrome 中的 favicon

    In the SVG 图标已设置 这是旋转内圆的SVG文件的内容 Favicon 动画在 Chrome 中根本不起作用 如何让它在 Chrome 中工作 在 Firefox 中可以正常工作 在 Edge 中则不行 但 Chrome 是最重要
  • Chrome:当父级固定时,无法将一个绝对 div 放置在另一个 div 上

    我发现 当我想要位于顶部的 div 的父级固定时 我无法将一个绝对定位的 div 放置在 Chrome 中的另一个 div 上 div div div div div div 这是演示该问题的 JSFiddle http jsfiddle
  • 如何在 select2 下拉列表中换行?

    我正在使用 select 2 下拉菜单 然后在其内容中显示一些长句子 我想在句子的正确位置添加换行符 但下拉菜单是自动调整的 For example the content of the dropdown right now looks l
  • 先按行再按列布局 div

    我有一个容器div and 3 div里面如下 div div 1 div div 2 div div 3 div div 不知道每一个的内容div内部 但它们的高度和宽度是可变的 集装箱的高度由最高的决定div inside 我想展示这些
  • 自定义rc-time-picker的样式

    我在用rc time picker我的项目的包 但我在自定义样式时遇到问题pop up of my time picker成分 这是我的组件的屏幕截图 首先 我需要更改时间的背景颜色item在当时li from light grey 在屏幕
  • 如何隐藏div元素中太长的文本?

    如何隐藏 div 中的溢出 如果文本比 div 长 则文本将换行到新行 div style width 50px border 1px solid black test test test test div 也许是 CSS 属性text o
  • 将图像作为框架放置在 iframe 周围?

    我有一个网站尝试以移动格式显示 但在宽屏幕上 我确信 iframe 是正确的选择 我正在尝试将 iframe 加载到 iPhone 的图像中 你可以看一个例子here http webfro gs south tour iframe tes
  • 删除子元素上的 CSS 过滤器

    我的 CSS 代码有问题 正如您所看到的 我在 li 元素上有过滤器 但它覆盖了其他元素 我需要使其他两个元素没有过滤器 有没有可能这样做 main width 300px height 300px background color blu
  • CSS 类命名约定

    在网页上 有两个控件块 主要和次要 大多数人会使用什么类名 选择一 div class primary controls div
  • Firefox 不会在使用 jQuery AJAX 加载的内容上呈现 CSS 样式

    我有一个网站 允许用户对书籍和文章发表评论 主表单有一个搜索输入 用于查找相关书籍或文章 来源 我使用 jQuery 根据输入的搜索词从外部站点动态加载新源 然后还使用 AJAX 返回列表中的源 我有两个问题 现在 在用户输入四个字符后 j
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • HTML 锚点,禁用样式

    我有一些 html 锚链接代码 与文档的其余部分不同 我希望它看起来不是链接 有没有一种简单的方法可以禁用由于将文本包装在锚标记中而引起的样式更改 而不必强行使其相同 即 如果我更改正文字体样式 我不必也更改其他一些 link东西 将颜色设
  • CSS溢出文本显示在几行中,没有断字

    我有一些长文本显示在 div 中 该 div 具有固定的宽度和高度 我希望文本显示在几行上 作为 div 高度 并且句子单词不会中断 一行中的单词前缀和下一行中的继续 此外 我想在末尾添加省略号最后一句话 CSS white space n

随机推荐

  • 【B站】动态规划学习

    https www bilibili com video BV1ET4y1U7T6 p 6 spm id from pageDriver 暴力递归到动态规划 测试用例 include
  • 基于STM32F103C8T6的超声波模拟雷达设计。【C8T6最小系统板+标准固件库+1.8‘TFT-LCD屏】

    前言 之前为做毕设一直在网上浏览关于STM32单片机的DIY项目 大多数设计都是关于智能家居方面的应用 通过浏览不同平台的内容发现了一个采用超声波测距并通过屏幕反馈障碍物位置的模拟雷达设计 感觉很有创意 但网上关于此项目的内容大多都是采用a
  • 手撕 AVL 树——C++ 高阶数据结构详解

    目录 传统艺能 概念 AVL 树结构定义 数据插入 AVL 树旋转 左单旋 右单旋 左右双旋 右左双旋 验证 AVL 树 查找 删除 传统艺能 小编是双非本科大一菜鸟不赘述 欢迎各位指点江山 期待 QQ 1319365055 此前博客点我
  • 四、FTP服务

    四 FTP服务 FTP服务是Internet上最早应用于主机之间进行数据传输的基本服务之一 是目前Internet上使用最广泛的文件传送协议 FTP概述 ftp是典型的C S架构的应用层传输协议 需要由服务端软件 客户端软件两个部分共同实现
  • TCP是怎么处理长连接、短连接

    TCP 协议是一种面向连接的协议 即在通信双方之间建立连接后才能开始传输数据 TCP 协议通过三次握手建立连接 在连接建立后就可以保持长时间的连接 以实现长连接 在 TCP 协议中 数据被分成多个数据包进行传输 每个数据包都有序号和确认应答
  • mac idea spark运行报错WARN Utils: Service ‘sparkDriver‘ could not bind on port 0. Attempting port 1.

    报错截图如下 在hosts里加入 本机ip 机器名 如 192 168 22 22 centos7 解决 原因是sparkDriver会根据主机名去找地址 找不到就报错 增加环境变量即可 SPARK LOCAL IP 127 0 0 1 也
  • efficientdet在gpu训练好的模型无法再cpu上使用

    AssertionError The NVIDIA driver on your system is too old found version 9010 Please update your GPU driver by downloadi
  • hdu 1069 Monkey and Banana

    Problem acm hdu edu cn showproblem php pid 1069 Reference www cnblogs com kuangbin archive 2011 08 04 2127291 html 题意 给
  • Educational Codeforces Round 67 (Rated for Div. 2)

    contest链接 A Stickers and Toys time limit per test 2 seconds memory limit per test 256 megabytes input standard input out
  • Sonarlint问题汇总

    1 Fields in a Serializable class should either be transient or serializable 说明 类属性中存在不能被序列化的属性 一般是对象 如 public class Addr
  • eMMC RPMB分区介绍

    EMMC标准中 将内部的 Flash Memory 划分为 4 类区域 最多可以支持 8 个硬件分区 如下图所示 一般情况下 Boot Area Partitions 和 RPMB Partition 的容量大小通常都为 4MB 部分芯片厂
  • CentOS7.X修改网卡名称为eth*

    修改相关配置文件 vi etc default grub cd etc sysconfig network scripts sed i s ens32 eth0 g ifcfg ens32 sed i s ens33 eth1 g ifcf
  • 虚幻4(UE4) 读取XML文件方式

    虚幻4引擎 读取XML文件 1 导入XmlParser模块 2 1读取方式一 从根节点读 读XML文档 TSharedPtr
  • PHP生成带参数的小程序码

    生成小程序码并携带参数 我们平时在开发微信小程序时 会遇到如下场景 需要制作某个推广链接 然后需要生成一个专属小程序码 扫描这个专属二维码时 获取到推广的链接携带的参数跳转到指定的界面 这个看似很难 其实特别简单 阅读微信官方的接口就很容易
  • 使用JSON.parse()转化成json对象需要注意的地方

    相信大部分人都知道或者去百度检索都会得到将js中的字符串转化成json对象常见的3种方法 举例 var str name 小明 age 18 将字符串转化json对象 1 var json JSON parse str 2 var json
  • 一个完整的react router 4.0嵌套路由的例子如下

    react router 4 0以上的路由应用 在4 0以下的react router中 嵌套的路由可以放在一个router标签中 形式如下 嵌套的路由也直接放在一起
  • 可视化探索开源项目的 contributor 关系

    引语 作为国内外最大的代码托管平台 根据最新的 GitHub 数据 它拥有超 372 000 000 个仓库 其中有 28 000 000 是公开仓 分布式图数据库 NebulaGraph 便是其中之一 同其他开源项目一样 NebulaGr
  • python 函数、模块、包及import导入方法

    函数 将一组代码组织到一起 实现某种功能 模块 模块就好比工具包 里面的具体工具就好比函数 需要使用里面的函数 就需要导入这个模块 为实现某种逻辑将相关连的函数写在同一个文件里 使逻辑更清楚 这就是一个模块 在python中文件以 py 结
  • C++11新关键字default

    C 11添加了很多新特性 使C 看上去更加的灵活和面向对象 其中新关键字default值得我们关注一下 我们知道有时候当我们仅创建了有参构造函数后 如果你想调用无参构造函数编译是会报错的 因为一旦你自己定义了构造函数 系统的默认构造函数是被
  • 2022-04-17 Sass学习笔记(二) Sass的语法:变量,条件分支,循环,mixin

    文章目录 1 变量 常见使用场景 语法 示例 2 条件分支 常见使用场景 语法 示例 3 循环 常见使用场景 语法 1 for 指令 2 each 指令 示例一 for循环li节点的样式 示例二 each in节点的样式 4 混合 Mixi