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 的相关文章

  • Sphinx内联代码高亮

    我使用 Sphinx 制作一个包含代码示例的网站 我成功地使用了 code block获取语 法高亮的指令 但我无法使用此代码获得内联语法突出显示 role bash code language bash Test inline bash
  • 悬停时的 CSS 过渡

    我有个问题 实际上 当我将鼠标悬停在对象上时 我尝试在 div 上进行转换 所以基本上我有一个div 当我将鼠标悬停在div上时 它应该在其顶部显示另一个div 但是它应该被转换 这样悬停效果会更平滑 如果我有这两个 div 怎么可能 di
  • 如何反转包裹上的弹性盒方向以实现“蛇形包裹”?

    我想找到一种方法 让单个容器中的元素换行到与前一行相反的方向的新行 就像一条蛇向后弯曲一样 我无法使用 flexbox 以及 flex direction 和 flex wrap 属性的任何组合来实现此结果 Flexbox 结果与期望结果的
  • RefineryCMS 2.1.0 和 Zurb 4 带有下拉导航的顶部菜单

    我正在尝试使用 Zurb Foundation 来设计使用最新版本的 Refinery 构建的应用程序 我开始遵循本指南 http blog flatironschool com post 54511602806 build a blog
  • 将变量从 JSON 文件加载到 LESS CSS 预处理器中

    是否可以像使用 Stylus 一样将变量从 JSON 文件加载到 LESS CSS 预处理器中 与文件内容myvars json color1 112345 color2 667890 在 Stylus 中我 json myvars jso
  • HTML/CSS - 使用图像作为输入类型=文件

    如何使用此图像 http h899310 devhost se proxy newProxy uplfile png http h899310 devhost se proxy newProxy uplfile png 而不是常规的
  • Polygonal Divs——让内容以特定形状溢出?

    这是我目前正在开发的网站 http willcrichton net http willcrichton net 如果单击中间六边形每一侧的箭头 您可以看到它使用 jQuery jQuery Cycle jQuery Easing 左右过渡
  • flexslider 中的 GIF 滑块,如何仅在滑块上时开始 gif

    现在我有一个带有四个幻灯片的 Flexslider 第三个滑块是 gif 而不是像其他滑块一样是 jpg 我遇到的问题是 第三个 gif 滑块显然在到达页面时立即启动 而不是在您实际到达该滑块时启动 当点击前两个滑块时 gif 就快完成了
  • 名称属性的 CSS 选择器?

    这可能是一个愚蠢的问题 但是属性的 CSS 选择器是什么 a 那是 名字 document body innerHTML myString anchor HTML String 这段 JavaScript 创建了一个 a 带有名称的元素 H
  • CSS3 属性 webkit-overflow-scrolling:touch 错误

    iOS 5 发布了网页设计师的新属性 webkit overflow scrolling touch它使用 iOS 设备硬件加速器为可滚动 div 提供本机滚动 当在我们的开发网站上实施时 它确实有效 但效果不佳 我相信可能存在 CSS 问
  • 将 Bootstrap 导航栏列表项包裹在居中的品牌图像周围

    我整晚都在搞乱这个问题 没有解决办法 我正在使用 bootstrap 2 32 对于 joomla 模板 尚不支持 BS3 并且我将拥有动态数量的列表项 我需要将列表项居中 但也同样包裹在中心 brand img 的左侧和右侧 我可以把它分
  • 如何使用 JavaScript 隐藏滚动条

    怎样才能隐藏滚动条呢 我想这样做是因为滚动条不太好 overflow hidden没有用 因为我的 div 元素还有许多其他元素 所以设置overflow不能解决我的问题 你可以用这个隐藏滚动条 document body style ov
  • 使用 javascript 将 CSS 类添加到具有另一个类名的所有元素

    我正在尝试使用 javascript 将类添加到具有不同类的所有元素 我知道你可能认为这是多余的 但对于我所处的情况来说这是必要的 我需要一种方法来查看具有该类名称的所有元素并添加该类 但我不明白如何获取计数 我正在使用一个 cms 但我无
  • 隐藏行时更新奇数/偶数行颜色

    我在一页上有几个表格和一个复选框 用于根据其中一个单元格的内容显示 隐藏行 虽然所有行都是可见的 但一切都很完美 并且行颜色根据需要交替 当我隐藏行时 交替的行颜色不再正确 显然 如何轻松更新类以在选中复选框时保持交替行颜色 然后在取消选中
  • CSS 中“body > *”是什么意思?

    我试图了解 jQTouch 实现的 CSS 效果 http www jqtouch com http www jqtouch com 它有一些 CSS 定义 其中包含如下语法body gt body gt webkit backface v
  • 如何解决输入字段上的错误行高?

    如何为具有固定高度的输入字段提供其所包含文本的跨浏览器垂直对齐方式 截至目前看来line height是我最好的选择 但是 在 Chrome 或 Safari 等 webkit 浏览器上 复制 粘贴时光标会跳至顶部对齐 我注意到 WordP
  • 如何在CSS网格系统中偏移div列

    有谁知道抵消前两个div位于侧行且具有类的 scol 3 12偏移量为offset 6 12 and offset 9 12位于我的网格系统的右侧jsFiddle http jsfiddle net c6R6t CSS body font
  • 如何在GEB中选择内部元素的文本?

    我有以下场景 div ul class select2 results style width 400px li class select2 results dept 0 select2 result select2 result sele
  • 解析器阻塞与渲染阻塞

    我一直在阅读有关优化网络性能的 Google 开发人员文档 我对那里使用的术语有点困惑 CSS 和 JavaScript 文件都会阻止 DOM 构建 但是 CSS 被称为渲染阻塞 而 JavaScript 被称为解析器阻塞 解析器阻塞 和
  • 如何在 React Native 中做最后一个子选择器?

    我使用Scrollview 里面有3个视图 我在它们之间留了一个间隙 例如 marginRight 5 但我不希望在最后一个视图中出现这种间隙 这就是为什么我需要这种东西 你能帮助我吗 应用这个你就可以实现你在寻找什么 const styl

随机推荐

  • 【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