SCSS ๊ตฌ์กฐ ๊ฐœ์„ 

3544 ๋‹จ์–ด


๋‚˜์œ ์˜ˆ



๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋œ ์˜ˆ์ œ SCSS:

.widget {
    background-color: red;
    .widget-body {
        background-color: black;
        .widget-link-block {
            background-color: yellow;
            .widget-link-block-menu {
                background-color: green;
            }
        }
    }
}

CSS๋กœ ์ปดํŒŒ์ผ:

.widget {
    background-color: red;
}

.widget .widget-body {
    background-color: black;
}

.widget .widget-body .widget-link-block {
    background-color: yellow;
}

.widget .widget-body .widget-link-block .widget-link-block-menu {
    background-color: green;
}

2๊ฐ€์ง€ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • '์œ„์ ฏ'๊ณผ ๊ฐ™์€ ํ‚ค์›Œ๋“œ๋ฅผ ๋ฐ˜๋ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค
  • .
  • ์ปดํŒŒ์ผ๋œ CSS๋Š” HTML ๊ตฌ์กฐ์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์Œ HTML์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • <div class='widget'>
      <div class='widget-body'>
        <div class='widget-link-block'>
          <div class='widget-link-block-menu'>
    
          </div>
        </div>
      </div>
    </div>
    

    ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์œ„๋ฐ˜ํ•˜๋ฉด ์ž‘๋™์ด ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

    <div class='widget-body'>
    <div>
    

    ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

    <div class='widget'>
      <div class='widget-body'>
        <div class='widget-link-block-menu'>
          <div class='widget-link-block'>
    
          </div>
        </div>
      </div>
    </div>
    

    ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

    ์ œ์•ˆ๋œ ๋ฐฉ๋ฒ•



    SCSS๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ํŒ”๋กœ์šฐBEM

    ์œ„์˜ SCSS ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    .widget {
        background-color: red;
        &-body {
            background-color: black;
        }
        &__link {
            &__block {
                background-color: yellow;
                &__menu {
                    background-color: green;
                }
            }
        }
    }
    

    CSS๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.

    .widget {
        background-color: red;
    }
    
    .widget-body {
        background-color: black;
    }
    
    .widget__link__block {
        background-color: yellow;
    }
    
    .widget__link__block__menu {
        background-color: green;
    }
    

    ๋ณด์‹œ๋‹ค์‹œํ”ผ ์ปดํŒŒ์ผ๋œ CSS๋Š” ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ๋œ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. SCSS๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋” ์ด์ƒ '.widget' ์ž‘์„ฑ์„ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ปดํŒŒ์ผ๋œ CSS๊ฐ€ ๋” ์ด์ƒ HTML ๊ตฌ์กฐ์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    <div class='widget'>
      <div class='widget-body'>
        <div class='widget__link__block'>
          <div class='widget__link__block__menu'>
    
          </div>
        </div>
      </div>
    </div>
    

    ๋˜๋Š” ๋‹ค๋ฅธ ์ˆœ์„œ๋กœ:

    <div class='widget'>
      <div class='widget-body'>
        <div class='widget__link__block__menu'>
          <div class='widget__link__block'>
    
          </div>
        </div>
      </div>
    </div>
    

    ๋˜๋Š” ๊ฐœ๋ณ„์ ์œผ๋กœ:

    <div class='widget-body'>
    </div>
    

    ์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ