Sass - @each Directive



Description

In @each, a variable is defined which contains the value of each item in a list.

Syntax

@each $var in <list or map>

The syntax is briefly explained below −

  • $var − It represents the name of the variable. @each rule sets $var to each item in the list and outputs the styles using the value of $var.

  • <list or map> − These are SassScript expressions, which will return a list or a map.

Example

The following example demonstrates the the use of @each directive −

<html>
   <head>
      <title>Control Directives & Expressions</title>
      <link rel = "stylesheet" type = "text/css" href = "style.css"/>
   </head>

   <body>
      <p class = "p_red">This is line one.</p>
      <p class = "p_green">This is line two.</p>
      <p class = "p_yellow">This is line three.</p>
      <p class = "p_blue">This is line four.</p>
   </body>
</html>

Next, create file style.scss.

style.scss

@each $color in red, green, yellow, blue {
   .p_#{$color} {
      background-color: #{$color};
   }
}

You can tell SASS to watch the file and update the CSS whenever SASS file changes, by using the following command −

sass --watch C:\ruby\lib\sass\style.scss:style.css

Next, execute the above command; it will create the style.css file automatically with the following code −

style.css

.p_red {
   background-color: red; 
}

.p_green {
   background-color: green; 
}

.p_yellow {
   background-color: yellow; 
}

.p_blue {
   background-color: blue; 
}

Output

Let us carry out the following steps to see how the above given code works −

  • Save the above given html code in @each.html file.

  • Open this HTML file in a browser, an output is displayed as shown below.

Sass Control Directives & Expressions
sass_control_directives_expressions.htm
Advertisements