zoukankan      html  css  js  c++  java
  • [SCSS] Loop Over Data with the SCSS @each Control Directive

    The SCSS @for directive is great when we know how many iterations are required and we only need 1 variable. What if we need multiple variables to iterate over data sets? Hello SCSS maps and the @each control directive! In this lesson, we’ll check out iterating with lists and looping over data sets with maps and the @each directive.

    // work with simple array
    $superheroes: wonder-woman, spiderman, batman, superman;
    @each $hero in $superheroes {
      .#{$hero}-logo {
        content: "#{$hero}";
      }
    }
    
    // we get
    .wonder-woman-logo {
      content: "wonder-woman"; }
    
    .spiderman-logo {
      content: "spiderman"; }
    
    .batman-logo {
      content: "batman"; }
    
    .superman-logo {
      content: "superman"; }

    key: value pairs using map-get():

    // work with key: value pair
    $breakpoints: (sm: 375px, md: 768px, lg: 1200px);
    $container-widths: (sm: 250px, md: 500px, lg: 750px);
    @each $size, $bp in $breakpoints {
      @media only screen and (min- $bp) {
        .container-width {
          // because $breakpoints and $container-widths have the same key
          // we can use map_get(target_ary, key) to get value
           map_get($container-widths, $size);
        }
      }
    }
    
    // we get
    @media only screen and (min- 375px) {
      .container-width {
         250px; } }
    
    @media only screen and (min- 768px) {
      .container-width {
         500px; } }
    
    @media only screen and (min- 1200px) {
      .container-width {
         750px; } }

    index: values pair using nth()

    $hero-media:  (1 375px 768px crimson),
                  (2 768px 1000px darkred),
                  (3 1200px 1400px grey),
                  (4 768px 1200px blue);
    
    // we get
    
    @media only screen and (min- 375px) and (max- 768px) {
      .wonder-woman {
        background-color: crimson; } }
    
    @media only screen and (min- 768px) and (max- 1000px) {
      .spiderman {
        background-color: darkred; } }
    
    @media only screen and (min- 1200px) and (max- 1400px) {
      .batman {
        background-color: grey; } }
    
    @media only screen and (min- 768px) and (max- 1200px) {
      .superman {
        background-color: blue; } }
  • 相关阅读:
    thinkphp ajax分页加载更多最简单的实现方法
    thinkphp整合系列之phpexcel导入excel数据
    Nginx详细安装部署教程
    swoole 安装方法
    tpshop使用中遇到的问题
    Oracle 的分页查询 SQL 语句
    使用 PLSQL 提示动态执行表不可访问,本会话的自动统计被禁止
    JavaScript实现多张图片上传功能
    JavaScript控制页码的显示与隐藏
    Struts2 项目 Action 查询结果异常 org.apache.struts2.json.JSONException
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6873635.html
Copyright © 2011-2022 走看看