SASS (SCSS)와 BEM 이야기

10785 단어 Sassscssbem

말하고 싶은 것


이제 CSS를 편리하게 활용하기 위해 SCSS와 BEM 기법을 활용해 보자.

sass, scss란?


  • CSS의 어려운 부분을 어떻게든 시도하기 위해 작성된 메타 언어
  • Syntactically(구문이) Awesome(이케테루) Style Sheets의 약어
  • 중첩, 변수, 믹스 인 및 선택기 상속 된 편리한 확장을 사용할 수 있습니다.
  • SCSS(Sassy CSS) 구문형과 SASS 구문형이 있다
  • //CSS
    .btn {
      display: block;
    }
    .btn span {
      display: inline-block;
    }
    
    //SASS
    .btn
      display: block
      span
        display: inline-block
    
    //SCSS
    .btn {
      display: block;
      span {
        display: inline-block;
      }
    }
    

    최근 트렌드


  • SCSS와 SASS가 있지만 SCSS는 주요
  • BEM 기법과 함께 사용되는 예가 많습니다


  • SCSS의 장점과 사용 예


    장점


  • 중첩이 가능하기 때문에 선택기 구조를 이해하기 쉽습니다
  • 변수를 사용할 수 있기 때문에 정의를 엄격화하고 유지하기 쉬워진다
  • 상속과 확장이 가능하기 때문에 코드를 적게 할 수 있다 & 알기 쉽다
  • 파일을 분할 할 수 있습니다 (컴파일하면 1 파일이됩니다)

  • 사용 예


    지금까지, 이런 느낌으로 쓰고 있었지만,,,
    .primaryBtn {
      padding: 12px;
      color: #fff;
      background-color: #01a2c1;
    }
    
    .dangerBtn {
      padding: 12px;
      color: #fff;
      background-color: #fc0349;
    }
    
    .primaryBtn--big {
      padding: 12px;
      color: #fff;
      background-color: #01a2c1;
      font-size: 30px;
    }
    
    
    이런 느낌에 편리하게 걸린다!
    //色を変数化
    $primary: #01a2c1;
    $danger: #fc0349;
    $white: #fff;
    
    @mixin btn {
      padding: 12px;
      color: $white;
    }
    
    .primaryBtn {
      @include btn;
      background-color: $primary;
    }
    
    .dangerBtn {
      @include btn;
      background-color: $danger;
    }
    
    .primaryBtn__big {
      @extend .primaryBtn;  // 既存のクラスを呼び出し
      font-size: 30px;     // ここだけ変更
    }
    

    참조: SCSS를 사용해 봅시다.
    htps //w w. 헹구어서 r. 코m/

    참조:SCSS로 할 수 있는 일
    htps : // m / TD3P / ms / 24 A 4773 df0c2 48

    BEM이란?


  • Block Element Modifier의 약어
  • 3 개의 요소를 사용해 HTML에 클래스명을 붙이는 기법
  • Block은 section이나 article와 같은 요소의 집합 단위
  • Element는 Block 안에 있는 버튼이나 텍스트의 집합 단위
  • Modifier는 Element의 변형 (슬라임, 부치 슬라임, 호이미 슬라임)
  • htps // 엔. 베 m. 인후 /
  • block {}
    block__element {}
    block__element--modifier {}
    
    monster {}
    monster__slime {}
    monster__slime--ぶち {}
    monster__slime--ホイミ {}
    

    이미지



    활용 사례



    See the Pen BEM by Tadatsugu Sampei ( @ 다다 츠구 사 mpei )
    on CodePen .

    
    <body>
      <section class="main">
        <div class="main__textArea">
          <p>Hello! SCSS&BEM!</p>
        </div>
        <div class="main__btn--success">
          早速使ってみる
        </div>
        <div class="main__btn--faile">
          遠慮しておく
        </div>
      </section>
    </body>
    
    <style>
    
    @mixin btn {
      text-align: center;
      margin: 20px 40px;
      padding: 20px;
      color: #fff;
    }
    
    .main{
      background-color: #c2ffea;
      padding: 100px;
      &__textArea {
        text-align: center;
        margin: 40px;
        padding: 40px;
        background-color: #fff; 
      }
      &__btn{
        &--success {
          @include btn;
          background-color: #0a7bf5;
        }
        &--faile {
          @include btn;
          background-color: #808080;
        }
      }
    }
    
    </style>
    

    참조



    좋은 웹페이지 즐겨찾기