Sass语法(三)之循环

2023-10-28

一、数据类型

1.数字

如,1、 2、 13、 10px;

2.字符串

 有俩种类型:

a.有引号字符串 (quoted strings),如 "Lucida Grande" 、'http://sass-lang.com';
b.无引号字符串 (unquoted strings),如 sans-serifbold。

编译 CSS 文件时不会改变其类型。只有一种情况例外,使用 #{ }插值语句 (interpolation) 时,有引号字符串将被编译为无引号字符串,这样方便了在混合指令 (mixin) 中引用选择器名。

3.颜色(blue,#04a3f9)

4.布尔型(true,false)

5.空值:null

6.值列表

值列表是指用空格或者逗号分隔的一系列的值,如,margin: 10px 15px 0 0或是font-face: Helvetica, Arial, sans-serif


二、控制命令

1. 条件语句-@if

@if可以用来判断:

p {
        @if 1 + 1 == 2 { border: 1px solid; }
        @if 5 < 3 { border: 2px dotted; }
      }

配套的还有@else命令:


@if lightness($color) > 30% {
        background-color: #000;
      } @else {
        background-color: #fff;
      }

2. 循环语句

①for循环

在 Sass 的 @for 循环中有两种方式:

         @for $i from <start> through <end>
         @for $i from <start> to <end>
$i 表示变量       start 表示起始值        end 表示结束值
这两个的区别是关键字 through 表示包括 end 这个数,而 to 则不包括 end 这个数。

a. @for $i from <start> through <end>

//scss

@for $i from 1 through 3 {
  .item-#{$i} { width: 2em * $i; }
}

编译出来的 CSS:
.item-1 {
  width: 2em;
}
.item-2 {
  width: 4em;
}
.item-3 {
  width: 6em;
}


b.@for $i from <start> to <end>

@for $i from 1 to 3 {
  .item-#{$i} { width: 2em * $i; }
}
编译出来的 CSS:
.item-1 {
  width: 2em;
}
.item-2 {
  width: 4em;
}

c.@for应用在网格系统生成各个格子 class 

//SCSS 
$grid-prefix: span !default;
$grid-width: 60px !default;
$grid-gutter: 20px !default;

%grid {
  float: left;
  margin-left: $grid-gutter / 2;
  margin-right: $grid-gutter / 2;
}

//through
@for $i from 1 through 4 {
  .#{$grid-prefix}#{$i}{
    width: $grid-width * $i + $grid-gutter * ($i - 1);
    @extend %grid;
  }  
}

//to
@for $i from 1 to 5 {
  .#{$grid-prefix}#{$i}{
    width: $grid-width * $i + $grid-gutter * ($i - 1);
    @extend %grid;
  }  
}
编译出来的 CSS:
.span1, .span2, .span3, .span4{
  float: left;
  margin-left: 10px;
  margin-right: 10px;
}
.span1 {
  width: 60px;
}
.span2 {
  width: 140px;
}
.span3 {
  width: 220px;
}
.span4 {
  width: 300px;
}

②while循环

执行表达式,并且会生成不同的样式块,直到表达式值为 false 时停止循环.
@while 后面的条件为 true 就会执行.

//SCSS
$types: 4;
$type-width: 20px;

@while $types > 0 {
    .while-#{$types} {
        width: $type-width + $types;
    }
    $types: $types - 1;
}
编译出来的 CSS
.while-4 {
  width: 24px;
}
.while-3 {
  width: 23px;
}
.while-2 {
  width: 22px;
}
.while-1 {
  width: 21px;
}

③each循环

@each 循环就是去遍历一个列表,然后从列表中取出对应的值。
@each $var in <list>

$var 就是一个变量名,<list> 是一个 SassScript 表达式,他将返回一个列表值。
变量 $var 会在列表中做遍历,并且遍历出与 $var 对应的样式块。

$list: adam john wynn mason kuroir;//$list 就是一个列表

@mixin author-images {
    @each $author in $list {
        .photo-#{$author} {
            background: url("/images/avatars/#{$author}.png") no-repeat;
        }
    }
}

.author-bio {
    @include author-images;
}

编译出 CSS:

.author-bio .photo-adam {
  background: url("/images/avatars/adam.png") no-repeat; }
.author-bio .photo-john {
  background: url("/images/avatars/john.png") no-repeat; }
.author-bio .photo-wynn {
  background: url("/images/avatars/wynn.png") no-repeat; }
.author-bio .photo-mason {
  background: url("/images/avatars/mason.png") no-repeat; }
.author-bio .photo-kuroir {
  background: url("/images/avatars/kuroir.png") no-repeat; }



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

Sass语法(三)之循环 的相关文章

  • 二,Xposed环境

    2 1 基本环境 环境已经完全搞定 手机 刷机 权限 注意 手机 开发者模式 调试模式 都要开启 真机参考本系列刷机或其它文章 https blog csdn net qq 32667685 article details 12590947
  • Servlet的相关API

    Hello 我是栋zzzz 先祝各位端午节快乐 那么接下来就继续来学习Servlet吧 我给大家整理了一些前置知识 方便更好的理解Servlet HTTP协议 上 HTTP协议 下 Tomcat Servlet 目录 一 HTTPServl
  • 判断单链表是否有环

    bool FixRing Node pHead Node pSlow pHead Node pFast pHead while pFast pFast gt next 如果存在环 不存在p next NULL的情况 pSlow pSlow
  • 相比于前端,为什么移动端程序员没那么抢手了?

    最近经常有一些移动端开发的小伙伴向我们招聘体验师反映 工作好像没有去年那么好找了 这是个案还是一个普遍现象 我们带着这个问题研究了一下 100offer 平台上的拍卖数据 今年互联网就业形势确实没有去年同期好 2015 年 Q1 我们候选人
  • 第1.3章 树莓派环境监控

    1 zabbix 在拜读 树莓派学习指南 基于Linux pdf 树莓派 Raspberry Pi 实战指南 手把手教你掌握100个精彩案例 等人的著作 都提到了一个问题 就是树莓派容易烧坏 于是就想着在使用前 是不是把监控给做好 比如安装
  • 学习源码之SPI机制

    目录 一 什么是SPI 二 SPI的作用 三 如何使用 四 流程图 五 源码学习 1 ServiceLoader load Class class 2 serviceLoader iterator 3 iterator hasNext 4
  • wifi卡慢延迟高_如何解决家里的WiFi卡顿的问题

    作为不同网络之间互相连接的枢纽 路由器系统构成了基于TCP IP 的国际互联网络Internet 的主体脉络 也可以说 路由器构成了Internet的骨架 家里安装有WiFi的用户有没有注意到一个问题 就是在我们使用WiFi的时候 总会时不
  • 利用人工智能开启商业新时代

    ChatGPT是基于人工智能大模型架构的强大语言模型 它具备出色的自然语言处理和生成能力 能够与人类进行智能对话 无论是寻求创业灵感 市场调研 内容创作还是销售辅助 ChatGPT都可以为你提供强有力的支持 接下来 我将为大家详细介绍如何利
  • 第二章 数据迁移之Dolphinscheduler调度DataX从Mysql全量导入Hive

    绪 需求说明 将源系统mysql表数据全量抽取到hive中作为ODS层 不保留历史变化 create table T YYBZB TGH BANKINFO id int 8 bank id int 8 bank name varchar 2
  • 第四届蓝桥杯Java B组 马虎的算式

    马虎的算式 Description 小明是个急性子 上小学的时候经常把老师写在黑板上的题目抄错了 有一次 老师出的题目是 36 x 495 他却给抄成了 396 x 45 但结果却很戏剧性 他的答案竟然是对的 因为 36 x 495 396
  • unity航点寻径

    一 游戏框架 设置了六个路标 角色会在这六个路标之间一次移动 当移动到第六个路标后又会返回第一个路标 继续依次移动 road 道路 由五个立方体组成 sign 路标 由六个胶囊组成 enemy 寻路的角色 二 游戏实现 1 创建一个平面 赋
  • RGB颜色对照表大全

    常用颜色rgb 颜色对照表 一 R G B 值 R G B 值 R G B 值 黑色 0 0 0 000000 黄色 255 255 0 FFFF00 浅灰蓝色 176 224 230 B0E0E6 象牙黑 41 36 33 292421
  • pdf预览

    previewSop url axios get url responseType arraybuffer then res gt var data res data var blob new Blob data type applicat
  • 实现多线程爬取数据并保存到mongodb

    多线程爬取二手房网页并将数据保存到mongodb的代码 import pymongo import threading import time from lxml import etree import requests from queu
  • 什么是3d虚拟数字人?对未来发展有什么影响?

    3d虚拟数字人指的是以数字形式存在的人工智能 也被称为数字智能体 无论是在我们的周围 还是我们自己的体内 他们都能够利用数据和代码来进行模拟 操纵和创造各种不同的人类形态 基本上来说 数字人就是指那些具备大脑 眼睛 手和嘴等特性的数字化机器
  • 【Analyzing and Mitigating Interference in Neural Architecture Search】分析与缓解NAS权重共享方法中的子模型之间的干扰问题

    Analyzing and Mitigating Interference in Neural Architecture Search 论文地址 https proceedings mlr press v162 xu22h html 摘要
  • google-app-engine 上传下载 用户文件

    http blog notdot net 2009 9 Handling file uploads in App Engine http hi baidu com zjm1126 item 31d65e31962da022b3c0c56e
  • 数据库中如何将数据库文件转移到其他主机中

    目录 一 数据库文件 二 方法一 分离 gt 附加 三 方法二 脱机 gt 附加
  • VS问题总结记录(持续更新)

    1 error MSB8020 无法找到 v142 的生成工具 平台工具集 v142 若要使用 v142 生成工具进行生成 请安装 v142 生成工具 https blog csdn net weixin 39956356 article

随机推荐

  • 丰田工机安全plc编程软件pcwin safe

    丰田工机安全plc编程软件pcwin safe 14而且还是中文版的 绝对是难得的资源 toyopuc YID 17200678135439768 在现代工业领域 计算机技术的广泛应用已成为了工厂生产和管理的重要组成部分 同时也给工业安全带
  • node.js 如何读取json文件内容

    最简单的方式 const config require config json console log name config name console log age config age require方法的缺点 内容会被缓存 不适合动
  • cocos2d-x 浅析斗地主游戏分牌动作

    cocos2d x 浅析斗地主游戏分牌动作 分类 C C Cocos2d x学习笔记 2013 05 17 13 54 461人阅读 评论 0 收藏 举报 cocos2d x 斗地主 动作 最近在开发一款基于cocos2d x的斗地主棋牌游
  • MATLA技巧

    如何将MATLAB矩阵每列都归一化为单位向量 function matrix normalized norm matrix by column matrix column norms sqrt sum abs matrix 2 1 or v
  • 10款最著名的代码(文本)编辑器

    通常操作系统和软件开发包中都包含文本编辑器 可以用来编辑配置文件 文档文件和源代码 下面是笔者总结的 10 个最好的免费代码文本编辑器 1 NOTEPAD NOTEPAD 是一款免费又优秀的文本编辑器 支持在 MS Windows 环境下运
  • 全网最完整php禁用eval函数讲解

    1 eval是什么 eval是一个语言构造器 并不是系统组件函数 因此我们在php ini中使用disable functions是无法禁止它的 2 eval的危害 eval 对于php安全来说具有很大的杀伤力 因此一般不用的情况下为了防止
  • Linux下 C 遍历目录(opendir,readdir函数)

    opendir 函数 头文件 include
  • 如何用清华 ChatGLM 微调一个私域大模型

    曹政 曹大是我们圈子里公认的大佬 他在技术上不仅早早领先 在思维认知领域更是帮助很多小伙伴快速成长 没有 ChatGPT 之前 我一直在想 能否将曹大的思维 直接植入过来 就跟无崖子传输功力 头碰头就行 当然我多想了 ChatGPT 出来后
  • EXT.JS2.2表单上传文件

    var uploadFile new Ext form TextField fieldLabel 上传文件 id file name uploadFile height 25 width 860 blankText 请上传文件 itemCl
  • React中怎么实现状态自动保存(KeepAlive)?

    什么是状态保存 移动端中 用户访问了一个列表页 上拉浏览列表页的过程中 随着滚动高度逐渐增加 数据也将采用触底分页加载的形式逐步增加 列表页浏览到某个位置 用户看到了感兴趣的项目 点击查看其详情 进入详情页 从详情页退回列表页时 需要停留在
  • 关于STM32 定时器PWM输出,关闭PWM时,输出引脚电平控制。

    STM32的定时很多 功能也比较全面 pwm功能更是比较常用的功能 特别是对直流电机调速使用 但是有时我们停止PWM的时候希望 PWM的输出通道输出固定电平 下面我说一下其中的一种实现方法 根据数据手册得知 只要将OC1M设置为 100或者
  • 鞋子AJ,表格AG,ag-grid社区版排序错误问题

    ag grid表格数字格式排序是按照1 10 11 2 3 4这样排序的 相信很多小伙伴都知道怎么解决 只需要在sort方法内arr sort function a b return a b 就可以 我之前在源码里找到了这个 但是没法解决
  • 李峋同款爱心Python代码版来了

    最近看到不少关于李峋同款爱心的视频 文章 今天我们也分享一下李峋同款爱心 Python 代码版 简单来说李峋同款爱心就是一个动态的 型效果 主要 Python 代码实现如下 def init self generate frame 20 原
  • Python自动化测试的配置层实现方式对标与落地

    Python中什么是配置文件 配置文件如何使用 有哪些支持的配置文件等内容 话不多说 让我们一起看看吧 1 什么是配置文件 配置文件是用于配置计算机程序的参数和初始化设置的文件 如果没有这些配置程序可能无法运行或是影响运行 运行速度 便捷性
  • C# 使用SqlDataReader读取数据库数据

    本文主要讲述如何使用SqlDataReader方法来读取数据 来完成数据库增删改查中查的工作 这是C 读取数据库的主要方法 一 环境介绍 Visual Studio 2015 SQL Server 2012 控制台应用程序 使用的数据库名称
  • 在Gitee搭建属于自己的博客

    搭建属于自己的私人博客 工具安装 1 安装 git git 版本控制工具 链接 https pan baidu com s 19V8BH4kO9h6eVNFhMzAU4w 提取码 chgo 1 1 选择 next 1 2 选择安装路径 1
  • 全球十大即时通信软件最新排名

    第十名 Signal 1亿用户 Signal是一款提供加密通信的即时通讯软件 用户可以进行点对点的私密聊天和通话 优势 客户端及服务器开源 默认私聊 群聊端对端加密 纯净无广告 没有复杂功能 局限 注册使用Signal必须与手机捆绑 无法在
  • SQL数据库编写及示例

    一 数据库编写 1 数据库常用约束 主键约束 primary key 外键约束 foreign key references 唯一值约束 unique 默认值约束 default 检查约束 check 非空约束 not null 标识列 i
  • Apolo学习

    安装 java1 8 mysql 5 6 5以上 下载quickStart的包 早apollo下执行两个sql 如果不执行这两个sql apollo是执行不起来的 会有两个表来记录apollo的执行情况 其中一个表叫apolloportal
  • Sass语法(三)之循环

    一 数据类型 1 数字 如 1 2 13 10px 2 字符串 有俩种类型 a 有引号字符串 quoted strings 如 Lucida Grande http sass lang com b 无引号字符串 unquoted strin