Sass 循环语句

2023-10-27

本节我们学习 Sass 中的循环语句,Sass 中的循环语句可以使用 @for 指令和 @while 指令来实现。

@for指令

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

// 第一种
@for $i from <start> through <end>
    
// 第二种
@for $i from <start> to <end>

其中 $i 表示变量,start 表示起始值,end 表示结束值。其实这两种方式的区别就在于,使用关键字 through 时会包括 end 这个数,而使用关键字 to 则不会包括 end 这个数。

示例:

如下代码,使用 through 关键字实现 @for 循环:

@for $i from 1 through 3{
    .width#{$i} {
        width: $i * 10px; 
    }
}

编译成 CSS 代码:

.width1 {
  width: 10px;
}

.width2 {
  width: 20px;
}

.width3 {
  width: 30px;
}

上述代码中,循环一共循环了三次,从 $i 的值为 1 开始循环,一直到 3 结束,并且包括了 3。

示例:

然后我们再来看一下 to 关键字的使用:

@for $i from 1 to 3{
    .width#{$i} {
        width: $i * 10px; 
    }
}

编译后的 CSS 代码:

.width1 {
  width: 10px;
}

.width2 {
  width: 20px;
}

through 关键字不同,to 关键字的循环虽然也是从 $i 的值为 1 开始循环,但是不包括 3 ,所以整个循环只循环两遍。

@while指令

@while 指令也可以用于循环样式,后面接 SassScript 表达式,循环会一直到表达式的值为 false 时停止。

示例:

循环遍历12px、14px、16px 的字体样式:

$num: 12;

@while $num < 18 {
    .f-#{$num} { 
        font-size: #{$num}px; 
      }
    $num: $num + 2;
}

编译成 CSS 代码:

.f-12 {
  font-size: 12px;
}

.f-14 {
  font-size: 14px;
}

.f-16 {
  font-size: 16px;
}

变量 $num 的初始值为 12,首先会输出 font-size:12px 样式,然后每次循环都会在原有的基础上加 2,一直到 不满足 $num < 18 这个条件,则循环会停止执行。

@each 指令

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

语法:

@each $i in <list>

$i 就是一个变量名,<list> 是一个 SassScript 表达式,返回一个列表值。

示例:
$list: 5 10 15 20 25;

@each $i in $list {
    .p-#{$i}{
        padding: #{$i}px;
    }
}

编译成 CSS 代码:

.p-5 {
  padding: 5px;
}

.p-10 {
  padding: 10px;
}

.p-15 {
  padding: 15px;
}

.p-20 {
  padding: 20px;
}

.p-25 {
  padding: 25px;
}

可以看到上述代码中,我们遍历了定义好的 $list 中的5个值,一直到列表中的值遍历完后,循环才会停止。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sass 循环语句 的相关文章

  • 如何在SCSS中获取数组的$values?

    我正在制作自己的插件 通过编写单个插件自动进行多个媒体查询 includeSCSS 中的行 所以当我输入时 include medias bp values width 输出应该是这样的 media all and min width 56
  • 可以在 SASS / Compass 中创建随机数吗?

    我正在开发一个使用 SASS 和 Compass 的项目 并且需要以某种方式在 CSS 文件中得出一些随机数 具体来说 我需要一些 0 到 1 之间的浮点数 单独使用 SASS 和 Compass 可以吗 如果您创建一个 sass 函数 这
  • 如何解决这个 sass 插值问题

    警告 您可能不想在此处进行插值时使用颜色值白色 它最终可能会呈现为白色 这可能会产生无效的 CSS 将颜色名称用作字符串或映射键时 请始终引用颜色名称 例如 白色 如果您确实想在此处使用颜色值 请使用 colorName 93 text c
  • Compass (sass) 和 Web 开发人员扩展

    我经常使用 Web 开发人员扩展中的 编辑 css 功能来编辑样式表 这是一个很棒的功能 但编辑 css 并将其复制回编辑器进行保存需要时间 我计划在下一个项目中使用 Compass 我想知道如何使用 SASS Compass 的 编辑 c
  • 更改变量值 scss

    我在我的 scss 文件中定义了不同的变量 我在一些 scss 文件中使用了这些变量 变量 scss light theme rgba 94 161 215 0 3 dark theme 5EA1D7 darker theme 57647A
  • Susy:根据屏幕尺寸改变列数

    在 Compass Sass 插件中 Susy http susy oddbird net 您可以在 base scss 文件中设置列数 对于桌面视图 我喜欢有 12 列 然而 对于移动视图来说 这列太多了 有没有办法更改移动显示的列数 我
  • 如何向 Sass 添加自定义函数(通过 Sass::Script::Functions)?

    我使用的是 vanilla Sass 没有 Compass SUZY Bourbon etc 但我无法确定将 rb 文件放在哪里 我不是 Ruby 程序员 但我确实找到了一个别人编写的函数可以满足我的需要 我尝试过搜索 但得到的结果是死胡同
  • 我可以用 SASS \ Compass 计算和使用元素高度吗

    我在 RoR 项目中使用 sass 和 compass 我需要分配给top元素的 CSS 属性值 即元素高度除以 2 我可以用 SASS Compass 来做吗 你似乎已经得到了XY问题 https meta stackexchange c
  • 修改变量后动态重新导入 Sass 部分

    我正在开发一个利用 Sass 预编译的 Twitter Bootstrap 的项目 每次覆盖变量时 我都必须重新导入 bootstrap sass文件到我的项目主样式表以使覆盖生效 您是否知道如何使此过程自动进行 以便每次修改变量时立即生效
  • NetBeans 7.4 中的 SASS

    我在 Windows 7 64 位 上使用 NetBeans 7 4 这样我就安装了 Ruby200 x64 这样我就可以使用 Sass scss 到 css CSS 预处理器在 NetBeans 中的配置如下 C Ruby200 x64
  • 在多个 Compass 项目中加载全局 SASS 文件

    我想创建一个多个 Compass 项目将访问的 SASS 文件目录 该目录将包含许多具有相似样式 表单元素 clearfixes 重置等 的常见元素的 SASS 文件 我希望在多个项目中访问和使用这些元素 如何在多个项目中包含这个全局 SA
  • 覆盖 vuetify 中的 scss 变量

    为了增加 vuetify 的 v switch 的宽度 我想修改 vuetify 的 scss 变量的值 vuetify是通过vue cli配置的 开发的代码如下 src assets css overrides scss font siz
  • NuxtJS & SASS Loader - 在生产环境中使用 sass-loader (SCSS) 进行构建

    我添加了此行以在开发 本地 服务器上使用 sass loader 进行构建 nuxt config js module exports mode spa build analyze analyzerMode static generateS
  • 让 Compass 将供应商前缀添加到动画选择器

    谁能告诉我如何让 Compass 在编译时将供应商前缀添加到 CSS3 动画选择器中 我的配置文件如下所示 http path css dir sass dir images dir img javascripts dir js outpu
  • 将自定义 CSS 添加到使用 Compass 生成的精灵中

    我有这个代码my images scss file icon layout smart icon sprite dimensions true import icon png include all icon sprites 输出是这样的
  • 无法在 Angular 4 中使用自定义主题

    我正在尝试在我的角度项目中使用我的自定义主题 它没有按预期工作 我收到以下错误 node modules css loader sourceMap false importLoaders 1 node modules postcss loa
  • 如何在 webpack laravel mix 中使用 google font v2 API 导入 sass 文件中的 url?

    我正在尝试导入一个谷歌字体 https fonts google com specimen Inter sidebar open true selection family Inter wght 500 600 700 800 900进入我
  • Firefox Placeholder Before CSS 选择器不起作用

    我使用的是最新的firefox 30 0 我正在尝试在必填字段的占位符之前插入红色字体真棒星号 我在 Chrome 中工作没问题 但我在 FF 和 上遇到问题 这是一个说明我的问题的代码笔 http codepen io anon pen
  • 如何设置 CSS 网格的最大高度

    我有以下 CSS 网格 grid 3x4 display grid grid template columns 1fr 1fr 1fr grid template rows 1fr 1fr 1fr 1fr grid template are
  • 如何使用 Antd / Less 和 Sass / CSS 模块配置 Next.js

    我想用Next js https nextjs org 带有 Sass 和 CSS 模块但也想使用蚂蚁设计 https ant design 并希望对较小的建筑尺寸使用 Less 样式 我可以启用 CSS 模块或 Less 加载器 但不能同

随机推荐

  • [python]——python通过kepserver 连接plc

    使用python通过opc ua连接plc 使用的软件 KEPServerEX 6 kepserverex中可以创建虚拟plc kepserver设置 操作步骤 安全策略设置 右键KepServer主窗口中项目 选择属性 点击OPC UA
  • mysqldump源码解读 - 到底是怎样dump的?

    环境 8 0 27 MySQL Community Server CentOS7 general log general log 记录了 MySQL 服务器响应的所有 SQL 语句信息 该日志默认是关闭的 首先开启 general log
  • Ubuntu安装及使用Docker

    文章目录 1 Docker的安装 1 1 准备工作 1 2 卸载旧版本 1 3 安装Docker 1 3 1 安装 https 相关的软件包 1 3 2 设置apt仓库地址 1 3 3 安装 Docker 软件 1 3 4 检查docker
  • Java调用ElasticSearch自定义的评分插件

    之前 使用phash做了一个基于ElasticSearch的图片相似性的项目 需要自己写一个评分插件 在kibana中用es的语句查询 没有问题 现在要集成到java项目中 kibana中查询语句 GET test index search
  • 解决虚幻引擎 SetupAndroid.bat运行报错:Unable to locate local Android SDK location. Did you run Android Studio?

    版主最近在使用unreal4 27按官方ue4文档指示安装android环境打包项目到安卓平台时遇到了SetupAndroid bat运行报错 Unable to locate local Android SDK location Did
  • 安装sva遇到的问题

    library sva 载入需要的程辑包 genefilter Error package or namespace load failed for genefilter in loadNamespace i c lib loc libPa
  • 【中阳期货】GPT-4正在改进自己,超强进化

    GPT是一种预训练语言模型 由OpenAI研发 如果你希望快速了解GPT 可以按照以下步骤进行 了解预训练语言模型 预训练语言模型是一种人工智能技术 可以通过大量语言数据的训练 自动学习语言的规律和语义 GPT就是其中的一种 理解GPT的基
  • SqlServer时间类型常用技巧

    本文主要对SqlServer时间类型常用技巧做一个小小的总结 主要在于时间与字符串的转换处理 一 SqlServer常用的时间类型 1 sqlserver常见的时间类型有DATE DATETIME TIME TIMESTAMP四种 其中TI
  • 易观千帆

    易观 2023年4月证券服务应用活跃人数13924 88万人 相较上月 环比下降1 46 同比增长3 64 2023年4月自营类证券服务应用Top10 活跃人数6144 02万人 环比下降0 01 2023年4月第三方证券服务应用Top10
  • 高效的浏览器快捷键,办公上网必备

    Ctrl N 打开一个新的浏览器窗口 Ctrl T 打开一个新的标签页 Ctrl Tab 切换到下一个标签页 Ctrl Shift Tab 切换到上一个标签页 Ctrl W 关闭当前标签页 Ctrl Shift W 关闭当前窗口 Alt F
  • C++ 拷贝(复制)构造函数详解

    拷贝构造函数 特殊的构造函数 用户未定义拷贝函数的情况下 系统自动创建一个隐式的默认拷贝构造函数 它将已经存在的对象中的数据成员逐个的拷贝到新创建的对象中 自定义拷贝构造函数格式 类名 const 类名 引用名 会调用拷贝函数的三种情况 1
  • 免费下载文档:给你介绍几个实用的免费下载网址

    文档不会写 想要去网上下载模板看看 怎么都要会员啊 下面给你介绍几个免费下载文档的地方 1 嗨文库 嗨文库官网为您提供文库文档下载服务 免费下载文库文档 在线解析文库文档资料 从此 下载百度文库文档变得简单 从百度文库里复制想要下载文档的链
  • 使用cpolar发布群晖NAS上的网页(1)

    系列文章 使用cpolar发布群晖NAS上的网页 1 使用cpolar发布群晖NAS上的网页 2 使用cpolar发布群晖NAS上的网页 3 群晖NAS作为一款简便易用的小型数据中心 已经在很多家庭和中小型企业中得到了应用 作为数据中心 群
  • 菜单设计

    源代码 include
  • WebUploader结合SparkMd5实现文件秒传

    秒传的实现原理 文件秒传的实现原理其实就是在文件上传前 把内容读取出来 算出 md5 值 然后通过 ajax 与服务端进行验证 然后根据结果选择继续上传还是跳过上传 js spark md5 虽然百度的WebUploader也能够计算文件M
  • sqli-lab-less16

    sqli lab less16 一 靶标地址 Less 16 POST Blind Time Based Double quotes 双引号时间盲注 http 127 0 0 1 sqli less 16 二 漏洞探测 输入admin ad
  • python三维数据转换成二维_5大Python可视化库到底选哪个好?一篇文章搞定从选库到教学...

    最近和鲸社区的大佬们 竟不约而同地写起了可视化库的教程 开始了掰头 完整教程列表在文末附录 虽然对于我们这种吃瓜群众来说是件好事 但 大概大佬的快乐往往就是那么的朴实无华且枯燥吧 害 管他呢 赶紧拿出来给大家瞅瞅 今天提及的5个Python
  • ieframe.dll修复方法

    ieframe dll文件对一些电脑软件 电脑游戏等程序的正常运行起到关键性作用 对于弹出缺少此类文件的弹窗 用户们很多时候也摸不着头脑 程序明明上次都能正常运行 突然就弹出缺少dll文件的提醒窗口 通过小编此次编辑的文章 用户们将可轻松解
  • 腾讯面经汇总

    网络 tcp超时 客户端断电了 我tcp怎么感知 A 断电操作系统就不会发送FIN 但tcp感知 emmmm send函数返回 1吧 Q 你确定吗 A 尬笑 Q 下去了好好研究研究吧 就让说TCP IP 然后我就说了TCP三次握手 四次挥手
  • Sass 循环语句

    本节我们学习 Sass 中的循环语句 Sass 中的循环语句可以使用 for 指令和 while 指令来实现 for指令 for 指令可以用于循环生成样式 for 指令有两种类型 如下所示 第一种 for i from