๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

Syntax-07-extend

Sass(SCSS) Syntax - 7. ํ™•์žฅ(Extend)#

โ—๏ธ ํ•ด๋‹น ๊ธ€์€ ํŒจ์ŠคํŠธ์บ ํผ์Šค - ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๊ฐ•์˜์—์„œ HTML & CSS, SASS(SCSS) Part์˜ ๋ฐ•์˜์›… ๊ฐ•์‚ฌ๋‹˜์˜ ๊ฐ•์˜์ž๋ฃŒ(Sass(SCSS) ์™„์ „ ์ •๋ณต!)๋ฅผ ๋ณด๋ฉฐ ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ™•์žฅ(Extend)#

๋‹ค๋ฅธ ์„ ํƒ์ž์˜ ๋ชจ๋“  ์Šคํƒ€์ผ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜ค๋ฉด์„œ ๋ช‡ ๊ฐ€์ง€ ์Šคํƒ€์ผ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ , ํ™•์žฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

.btn {  padding: 10px;  margin: 10px;  background: blue;}.btn-danger {  @extend .btn;  background: red;}

โ˜๏ธ btn-danger ์„ ํƒ์ž๊ฐ€ btn ์˜ padding , margin , background ๋“ฑ์˜ ์†์„ฑ์„ ๋ชจ๋‘๊ฐ€์ ธ์˜ค๋ฉด์„œ background ๋งŒ red ๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ, ํ™•์žฅ์„ ์‚ฌ์šฉํ•จ.

์ปดํŒŒ์ผํ•˜๋ฉด

.btn, .btn-danger {padding: 10px;margin: 10px;background: blue;}.btn-danger {background: red;}

์ปดํŒŒ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด , ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๋‹ค์ค‘ ์„ ํƒ์ž(Multiple Selector)๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๋‹ค.

๋‹ค์ค‘ ์„ ํƒ์ž๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฐœ๋…์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

.container {  width: 300px;  height: 300px;  background: red;  .item {    width: 200px;    height: 200px;    background: blue;    .icon {      width: 100px;      height: 100px;      background: green;    }  }}
.new-icon {  @extend .icon;}

์ปดํŒŒ์ผํ•˜๋ฉด

.container {width: 300px;height: 300px;background: red;}.container .item {width: 200px;height: 200px;background: blue;}.container .item .icon, .container .item .new-icon {width: 100px;height: 100px;background: green;}

โ˜๏ธ .new-icon ์ด ์˜ˆ๊ธฐ์น˜์•Š๊ฒŒ .item ์˜ ํ•˜์œ„ ์š”์†Œ๋กœ ๋“ค์–ด๊ฐ€๊ฒŒ ๋จ

@extend ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

  • ๋‚ด ์„ ํƒ์ž๊ฐ€ ์–ด๋””์— ์ฒจ๋ถ€๋  ๊ฒƒ์ธ๊ฐ€?

  • ์›์น˜ ์•Š๋Š” ๋ถ€์ž‘์šฉ์ด ์ดˆ๋ž˜๋  ์ˆ˜ ์žˆ๋Š”๊ฐ€?

  • ์ด ํ•œ๋ฒˆ์˜ ํ™•์žฅ์œผ๋กœ ์–ผ๋งˆ๋‚˜ ํฐ CSS๊ฐ€ ์ƒ์„ฑ๋˜๋Š”๊ฐ€?

ํ™•์žฅ์€ ์œ ์ตํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ถ€์ž‘์šฉ์ด ์žˆ๋‹ค. (์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ)

โ˜๏ธ @mixin ์œผ๋กœ ๋Œ€์ฒดํ•ด์„œ ์‚ฌ์šฉ๐Ÿ”— Sass Guidelines Extend ์ฐธ๊ณ 

Reference#

ํŒจ์ŠคํŠธ์บ ํผ์Šค - ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ๊ฐ•์˜ - HTML & CSS, SASS(SCSS) Part by ParkYoungWoong

Sass(SCSS) ์™„์ „ ์ •๋ณต!

Sass Guidelines Extend