zoukankan      html  css  js  c++  java
  • [SCSS] Reuse Styles with the SCSS @extend Directive

    We can write reusable styles with the SCSS @extend or @mixin directives. Which one is better? It depends. A better question is, how do they differ?
    Extends:
    change the source order, mixins don’t.
    maintain relationships, mixins don’t.
    share inherited traits, mixins don’t.
    can extend multiple classes, mixins don’t.
    can create multiple class declarations in the compiled CSS, mixins don’t.
    can use the placeholder selector, mixins don’t.

    Mixins:
    can accept arguments, extends don’t.
    can pass additional content, extends don’t.
    repeat code when compiled, extends group class names together.
    work well wIth media queries, extends have a limited interaction wIth media queries.

    In this lesson we learn about writing reusable styles with the @extend directive and how it compares to the @mixin directive.

    .base {
      color: red;
    
      &:hover {color: green}
      &::after {content: "?"}
    
      &-stuff {height: 5rem} // this will not be extended
    }
    
    .cool {height: 20rem}
    
    .new {
      width: 20px;
      // extend multi classes
      @extend .base, .cool;
    }
    
    /*
     It is possible to use placeholder
    */
    
    %base {
      color: red;
    }
    
    .new2 {
      @extend %base;
    }
    
    /*
      Placeholder for extend with mixin
    */
    %hero {background: linear-gradient(red, white, black)}
    %villain {background: darkred}
    
    @mixin character($type: hero) {
      height: 20px;
      width: 20px;
    
      @extend %#{$type} // #{} --> output a string
    }
    
    .doc-ock {@include character(villain)}
    
    
    /*
      Works with media query
    */
    @media screen and (min- 800px) {
      %buddy { color: purple; }
    }
    
    @media screen and (min- 800px) {
      .buddy {
        @extend %buddy;
      }
    }

    Reference to http://sass-lang.com/documentation/file.SASS_REFERENCE.html#interpolation_

  • 相关阅读:
    网页中的默认按钮
    心动不如行动
    周日骑行广州大学城
    买单车别买重车
    今晚好无聊
    在自行车论坛看到的有趣帖子
    php zend framework 生成 pdf 出现中文乱码
    FPDI Import existing PDF documents into FPDF
    PHP 哈希表,关联数组,遍历方法大全
    zend framework 如何多表查询
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6799442.html
Copyright © 2011-2022 走看看