Sass控制命令

@if

@if 指令是一个 SassScript,它可以根据条件来处理样式块,如果条件为 true 返回一个样式块,反之 false 返回另一个样式块。在 Sass 中除了 @if 之,还可以配合 @else if 和 @else 一起使用。

@mixin blockOrHidden($boolean:true) {
  @if $boolean {
      display: block;
    }
    @else {
      display: none;
    }
}

.block {
  @include blockOrHidden;
}

.hidden{
  @include blockOrHidden(false);
}

编译出来的CSS为:

.block {
  display: block;
}

.hidden {
  display: none;
}

@for循环

删格布局,我们经常要定义col1~col12的宽。在CSS中,需要一个一个去定义,但是在Sass中可以使用@for循环来完成。

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

@for $i from <start> through <end>
@for $i from <start> to <end>
  • $i表示变量
  • start 表示起始值
  • end表示结束值

through包括end这个数。

而to则不包括end这个数。

@for $i from 1 through 3 {
    .col-#{$i} { 1 / 3 * $i }
}

@for $i from 1 to 3 {
    .item-#{$i} {
        width: 1 / 3 * $i;
    }
}

编译出来的CSS为:

.col-1 {
  width: 0.33333;
}
.col-2 {
  width: 0.66667;
}
.col-3 {
  width: 1;
}

.item-1 {
  width: 0.33333;
}
.item-2 {
  width: 0.66667;
}

实用例子:

$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;
}
@for $i from 1 through 12 {
  .#{$grid-prefix}#{$i}{
    width: $grid-width * $i + $grid-gutter * ($i - 1);
    @extend %grid;
  }
}

编译出来的CSS为:

.span1, .span2, .span3, .span4, .span5, .span6, .span7, .span8, .span9, .span10, .span11, .span12 {
  float: left;
  margin-left: 10px;
  margin-right: 10px;
}

.span1 {
  width: 60px;
}

.span2 {
  width: 140px;
}

.span3 {
  width: 220px;
}

.span4 {
  width: 300px;
}

.span5 {
  width: 380px;
}

.span6 {
  width: 460px;
}

.span7 {
  width: 540px;
}

.span8 {
  width: 620px;
}

.span9 {
  width: 700px;
}

.span10 {
  width: 780px;
}

.span11 {
  width: 860px;
}

使用继承,会自动合并。

@while循环

@while指令和其它语言中的while一样,条件为true时执行。

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

@while ($types > 0) {
    .item-#{$types} {
        width: $type-width + $types;
    }
    $types: $types - 1;
}

编译出来的CSS为:

.item-4 {
  width: 24px;
}

.item-3 {
  width: 23px;
}

.item-2 {
  width: 22px;
}

.item-1 {
  width: 21px;
}

@each循环

@each循环就是遍历一个列表,然后从列表中取出响应的值。

@each循环指令的形式:

@each $var in <list>

var是变量名。<list>是列表值表达式。遍历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;
}
时间: 2024-12-07 18:35:44

Sass控制命令的相关文章

Sass控制命令及函数知识整理

2017-07-07  20:17:17 最底部附结构图(实在是结构图太长了没办法) 2017-06-22  09:11:43 一.Sass的控制命令 [email protected]语句 @if 指令是一个 SassScript,它可以根据条件来处理样式块,如果条件为 true 返回一个样式块,反之 false 返回另一个样式块. 在 Sass 中除了 @if 之,还可以配合 @else if 和 @else 一起使用. 示例::控制一个元素隐藏或显示的代码, 原理:定义一个混合宏,通过 @

Matlab绘图基本控制命令

图形的控制与表现 (Figure control and representation) MATLAB提供的用于图形控制的函数和命令:   axis:  人工选择坐标轴尺寸.    clf:清图形窗口. ginput: 利用鼠标的十字准线输入.   hold: 保持图形.    shg:显示图形窗口.subplot: 将图形窗口分成N块子窗口.1.图形窗口(figure window)(1). 图形窗口的创建和选择(Creating and selecting of figure window)

cmd(控制命令程序)的用法

1. win+r进入运行程序,cmd进入控制命令界面 dir显示目录下包含的子目录或文件 用法: dir是路径 dir是命令,在命令后空格分开 路径:要显示目录的位置 rd:删除空目录 语法: rd  路径\目录的名称 cd: 切换路径 语法: 1      cd目录x              //切换到当前目录下的"目录x" 2      cd路径\目录x         //切换到指定"目录x" 3      cd..                 //切换

64,管道符,控制命令,变量

管道符 注:管道符 就是 把上一个命令 的结果 丢给下一个命令来执行显示出来如下: 案例一 [[email protected] /]# cat 1.txt | wc -l19[[email protected] /]# 案例二 [[email protected] /]# cat 1.txt | grep 1bin:x:1:1:bin:/bin:/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:

Selenese 命令清单 - 鼠标键盘事件控制命令

点击链接加入群[悦分享测试联盟]:https://jq.qq.com/?_wv=1027&k=5DiePik 简介 Selenium为用户提供了大量的Selenese命令,可以非常方便的为用户编写脚本实用,其中实际场景运用需要的并不多,为了能更好的利用这些命令,我对几乎所有Selenese命令做了分类,分类内容如下: 包含操作页面元素常用命令,以及一些不常用到的高级使用命令 对鼠标键盘事件控制命令 wait相关命令 veriy相关命令 assert相关命令 store存储器相关命令 Part I

journalctl#日志控制命令

journalctl #日志控制命令 Systemd 统一管理所有 Unit 的启动日志.带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志).日志的配置文件是/etc/systemd/journald.conf.journalctl功能强大,用法非常多. journalctl [OPTIONS] [MATCHES] OPTIONS -u #显示指定的unit的日志信息 -f #实时更新 --since TIME --unitl TIME #设置输出日志信息的

ftp交互和控制命令总结

一.FTP管理: 基于tcp,首先有客户端相服务端的知名端口21发起tcp连接建立ftp控制连接,控制连接在整个会话期间都保持打开,只用来发送连接/传送请求. 这里分为两种模式: 主动模式(PORT)和被动模式(PASV),这两种模式是站在FTP服务器的“角度”来说的,如果设置为主动模式,则需要传输数据时,服务器主动连接客户端,那么客户端就需要有数据监听端口(从port h1,h2,h3,h4,p1,p2命令中获知):如果设置为被动模式,则需要服务器告诉客户端(通过对pasv命令响应告知))自己

Docker基本部署及基本控制命令(理论篇)

Docker基本部署及基本控制命令 Docker概述 ? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,两者之间完全独立. 与虚拟机的比较 特性 容器 虚拟机 启动速度 秒级 分钟级 硬盘使用 一般为MB 一般为GB 性能 接近原生 弱于原生 系统支持量 单击支持上千个容器 一般几十个 隔离性 完全屏蔽底层 相对独立 Do

Docker基本控制命令(二)

Docker基本控制命令(二) 资源控制 CPU使用率控制 限制该镜像本次建立的容器最大只能占总资源的10% docker run --cpu-quota 10000 centos 按比例分配 创建两个容器为c1和c2,若只有这两个容器,设置容器的权重,使得c1和c2的CPU资源占比为33.3%和66. 7% docker run -itd --name c1 --cpu-shares 512 centos(镜像名)docker run -itd --name c2 --cpu-shares 1