首页 > 其他分享 >Sass 条件语句、循环语句、自定义函数

Sass 条件语句、循环语句、自定义函数

时间:2022-10-08 15:36:08浏览次数:56  
标签:语句 自定义 Sass item width each

前言

本文主要记录了Sass 条件语句、循环语句、自定义函数的基本用法。

条件语句

在Sass中可以使用@if@if-else@if-else 来进行条件判断,用法和JS相同。

    $width: 200px;
    p {
      @if ($width == 200px) {
        color: #cc6699;
      } @else if ($width == 300px) {
        color: #f97c00;
      } @else {
        color: #eb1c27;
      }
    }

编译为

    p {
      color: #cc6699;
    }
    /*# sourceMappingURL=demo.css.map */

循环语句

在Sass中可以使用@for@while@each 来进行循环操作。

@for

@for的用法不同于JS,Sass中的for有两种格式:

@for $i from n through m

  • @for $i from n through m 表示变量i 的范围是[n, m],包含m
    @for $i from 1 through 3 {
      .item-#{$i} { width: 200px + $i*10; }
    }

编译为

    .item-1 {
      width: 210px;
    }

    .item-2 {
      width: 220px;
    }

    .item-3 {
      width: 230px;
    }
    /*# sourceMappingURL=demo.css.map */

@for $i from n to m

  • @for $i from n to m 表示变量i 的范围是[n, m),不包含m
    @for $i from 1 to 3 {
      .item-#{$i} { width: 200px + $i*10; }
    }

编译为

    .item-1 {
      width: 210px;
    }

    .item-2 {
      width: 220px;
    }
    /*# sourceMappingURL=demo.css.map */

@while

与其他控制指令一样, @while 指令直到语句计算结果为false,它迭代地输出嵌套样式。 要注意的关键是,计数器变量需要在每次迭代时递增/递减。

在这里插入图片描述

@each

在@each中,定义一个变量,其中包含列表中每个项目的值。

@each用法:

@each $var in <list or map>

示例:

在这里插入图片描述

自定义函数

Sass 支持自定义函数,在Sass中可以使用 @function编写函数。

    $grid-width: 40px;
    $gutter-width: 10px;

    @function grid-width($n) {
      @return $n * $grid-width + $gutter-width;
    }

    #sidebar { width: grid-width(3); }

编译为

    #sidebar {
      width: 130px;
    }
    /*# sourceMappingURL=demo.css.map */

可以传递若干个全局变量给函数作为参数。

ps: 建议在自定义函数前添加前缀避免命名冲突

本文到此结束

如果大家还有什么其他想法,欢迎在评论区交流!

标签:语句,自定义,Sass,item,width,each
From: https://blog.51cto.com/u_15718546/5738072

相关文章

  • 29 自定义模板功能
    在相应的app文件夹中,创建templatetags文件夹,必须是templatetags文件夹命名:注意:templatetags文件夹中必须要有__init__.py文件jd.py:fromdjangoimporttemplateregist......
  • zabbix 自定义监控项
    1.zabbix_agent端配置[root@k8s1~]#egrep-v"^$|^#"/usr/local/zabbix/etc/zabbix_agentd.confLogFile=/tmp/zabbix_agentd.logServer=x.x.x.x #zabbixserver端i......
  • break语句
    break语句可以用于循环语句中,其作用是从循环体内跳出循环,即提前结束循环,接着执行循环语句下面的语句。 如果循环条件不成立,循环语句就执行完毕,这是循环的正常出口,而执行b......
  • 如何为DOM创建自定义事件?
    创建自定义事件(Creatingcustomevents)增加自定义数据(Addingcustomdata-CustomEvent())老式的方式(old-fashionedway)事件冒泡(eventbubbling)动态创建和触发事件(creating......
  • filebeat采集log日志,并自定义索引
    filebeat配置:filebeat.inputs:#Each-isaninput.Mostoptionscanbesetattheinputlevel,so#youcanusedifferentinputsforvariousconfigurations.......
  • if语句
    if语句if语句算是最常用的语句了先介绍if的格式if(...){}其中()内是条件。只有当满足条件的时候才会进入{}中的内容。值得一提的是条件的表述中“或”和“且”的表......
  • filebeat 自定义nginx的字段
    nginx配置:log_formatmain'$remote_addr-$remote_user[$year-$month-$day$hour:$minutes:$seconds]"$request"''$status$body_byt......
  • android自定义控件无法显示的原因
    android自定义控件无法显示的原因​​编者:李国帅​​​​时间:2020/8/1 ​​背景:Android开发中经常会遇到时间选择,而且经常会被要求使用类似ios的滚轮风格。只是android并......
  • jira项目笔记17-自定义useArray
    2-1、要求自定义一个useArray的customhook。结合react-hook和typescript,实现对数组简单的增加、删除、清空的那个功能,并且对增加的对象类型有限制2-2、代码实现export......
  • try语句的新特性
    JDK7的新特性在try的后面可以增加一个()在括号中可以定义流对象这个流对象的作用域就在try中有效try中的代码执行完毕,会自动把流对象释放,不用写finally try(FileInp......