Syntax-03-variables
#
Sass(SCSS) Syntax - 3. ๋ณ์โ๏ธ ํด๋น ๊ธ์ ํจ์คํธ์บ ํผ์ค - ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๊ฐ์์์ HTML & CSS, SASS(SCSS) Part์ ๋ฐ์์ ๊ฐ์ฌ๋์ ๊ฐ์์๋ฃ(Sass(SCSS) ์์ ์ ๋ณต!)๋ฅผ ๋ณด๋ฉฐ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค.
#
๋ณ์(Variables)๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฐ์ ๋ณ์๋ก ์ง์ ํ ์ ์๋ค.
๋ณ์ ์ด๋ฆ ์์ ํญ์ $
๋ฅผ ๋ถ์ฌ์ผ ํ๋ค.
$๋ณ์์ด๋ฆ: ์์ฑ๊ฐ;
$color-primary: #e96900;$url-images: "/assets/images/";$w: 200px;
.box { width: $w; margin-left: $w; background: $color-primary url($url-images + "bg.jpg");}
์ปดํ์ผํ๋ฉด
.box {width: 200px;margin-left: 200px;background: #e96900 url("/assets/images/bg.jpg");}
#
๋ณ์ ์ ํจ๋ฒ์(Variable Scope)๋ณ์๋ ์ ํจ๋ฒ์๊ฐ ์์ด์ ์ ์ธ๋ ๋ธ๋ก ( {}
) ๋ด๋ถ์์๋ง ์ฌ์ฉํ ์ ์๋ค.
.box1 { $color: #111; background: $color;}// Error.box2 { background: $color;}
โ๏ธ ๋ณ์ \$color ๊ฐ .box1 ์ ๋ธ๋ก ์์์ ์ค์ ๋์๊ธฐ ๋๋ฌธ์ ๋ธ๋ก ๋ฐ์ธ .box2 ์์๋ ์ฌ์ฉํ ์ ์๋ค.
๐ ์ค์ฒฉ ๋ฒ์ด๋๊ธฐ @at-root ์ฐธ์กฐ
#
๋ณ์ ์ฌ ํ ๋น(Variable Reassignment)๋ณ์์ ๋ณ์๋ฅผ ํ ๋นํ ์ ์๋ค.
$red: #FF0000;$blue: #0000FF;
$color-primary: $blue;$color-danger: $red;
.box { color: $color-primary; background: $color-danger;}
โ๏ธ $color-primary ๋ณ์์ $blue ๋ณ์๊ฐ ํ ๋น๋์๋ค.
์ปดํ์ผํ๋ฉด
.box {color: #0000FF;background: #FF0000;}
!global
#
์ ์ญ์ค์ !global
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ๋ธ๋ก ๋ด๋ถ์ ์ ์๋ ๋ณ์๋ผ ํ๋๋ผ๋ ์ ํจ๋ฒ์๋ฅผ์ ์ญ์ผ๋ก ์ค์ ํ ์ ์๋ค.
.box1 { $color: #111 !global; background: $color;}.box2 { background: $color;}
์ปดํ์ผํ๋ฉด
.box1 {background: #111;}.box2 {background: #111;}
๊ธฐ์กด์ ๊ฐ์ ์ด๋ฆ์ ๋ณ์๊ฐ ์ฌ์ฉ๋๊ณ ์์ ๊ฒฝ์ฐ ๊ฐ์ด ๋ฎ์ด์ ธ ์ฌ์ฉ๋ ์ ์๋ค.
$color: #000;.box1 { $color: #111 !global; background: $color;}.box2 { background: $color;}.box3 { $color: #222; background: $color;}
์ปดํ์ผํ๋ฉด
.box1 {background: #111;}.box2 {background: #111;}.box3 {background: #222;}
!default
#
์ด๊น๊ฐ ์ค์ !default
๋ ๊ธฐ์กด์ ๋ณ์๊ฐ ํ ๋น๋์ด ์์ผ๋ฉด, ๊ธฐ์กด ํ ๋น ๊ฐ์ ์ฌ์ฉํ๊ฒ ํ๊ณ , ๊ธฐ์กด์ ๋ณ์๊ฐ ํ ๋น๋์ด ์์ง ์์ผ๋ฉด ์ด๊น๊ฐ์ผ๋ก ์ค์ ํ๋ค.
$color-primary: red;
.box { $color-primary: blue !default; background: $color-primary;}
์ปดํ์ผํ๋ฉด
.box {background: red;}
โ๏ธ \$color-primary ๊ฐ ์ ์ญ์์ red ๋ก ๊ธฐ์กด์ ํ ๋น๋์ด ์๊ธฐ ๋๋ฌธ์ .box ๋ธ๋ก ๋ด๋ถ์์ blue ๊ฐ ์๋๋ผ red ๋ก ์ปดํ์ผ๋๋ค.
โ๏ธ โ๋ณ์์ ๊ฐ์ ์ค์ ํ๊ฒ ์ง๋ง, ํน์ ๊ธฐ์กด ๋ณ์๊ฐ ์์ ๊ฒฝ์ฐ๋ ํ์ฌ ์ค์ ํ๋ ๋ณ์์ ๊ฐ์ ์ฌ์ฉํ์ง ์๊ฒ ๋คโ ๋ผ๋ ์๋ฏธโ๏ธ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฝ์ฐ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์จ ์ฌ์ฉ์๊ฐ ๊ธฐ์กด์ ์ค์ ํ ๋ณ์์ ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ์ ์ฌ์ฉ์์ ์ค์ ์ ์ฐ์ ํด์์ฌ์ฉํ๋๋ก !default ํ๋๊ทธ๋ฅผ ์ค์ ํด ๋๋๋ค.
#{}
#
๋ฌธ์ ๋ณด๊ฐ #{}
ํค์๋๋ฅผ ์ฌ์ฉํด ์ฝ๋์ ๊ณต๊ฐ ์ด๋๋ ์ง ๋ณ์ ๊ฐ์ ๋ฃ์ ์ ์๋ค.
$family: unquote("Droid+Sans");@import url("http://fonts.googleapis.com/css?family=#{$family}");
์ปดํ์ผํ๋ฉด
@import url("http://fonts.googleapis.com/css?family=Droid+Sans");
โ๏ธ unquote() ๋ ๋ฌธ์์์ ๋ฐ์ดํ๋ฅผ ์ ๊ฑฐํ๋ Sass์ ๋ด์ฅ ํจ์.\$family ๋ณ์์ ๊ฐ์ url ์ฃผ์ ์ฌ์ด์ ๋ผ์ ๋ฃ์๋ค.
#
Referenceํจ์คํธ์บ ํผ์ค - ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๊ฐ์ - HTML & CSS, SASS(SCSS) Part by ParkYoungWoong