Sass @while指令

类似于其他的控制指令,@while指令也需要SassScript表达式和直到该语句的计算结果为假之前,它会反复输出嵌套样式。需要注意的关键一点是,在每个迭代记数变量需要递增/递减。

语法

while(condition) {
  // CSS codes
}

示例

下面的例子演示了如何使用 @while 指令:
<html>
<head>
   <title>Control Directives & Expressions</title>
   <link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
   <p class="paddding-50">This is line one with left padding 50. </p>
   <p class="paddding-40">This is line two with left padding 40.</p>
   <p class="paddding-30">This is line three with left padding 30. </p>
   <p class="paddding-20">This is line four with left padding 20. </p>
   <p class="paddding-10">This is line five with left padding 10. </p>
</body>
</html>
接下来,创建文件 style.scss

style.scss

$i: 50;
@while $i > 0 {
  .paddding-#{$i} { padding-left: 1px * $i; }
  $i: $i - 10;
}
可以告诉SASS监视文件,并随时使用下面的命令更新SASS文件修改CSS:
sass --watch C:\Ruby22-x64\style.scss:style.css
接着执行上面的命令,它会自动创建 style.css 文件,下面的代码:

style.css

.paddding-50 {
  padding-left: 50px; }

.paddding-40 {
  padding-left: 40px; }

.paddding-30 {
  padding-left: 30px; }

.paddding-20 {
  padding-left: 20px; }

.paddding-10 {
  padding-left: 10px; }

输出结果

让我们来执行以下步骤,看看上面的代码工作:
保存上面的 html 代码在 @while.html 文件中。在浏览器中打开该HTML文件,得到输出如下显示。