๐ SCSS
- SCSS๋ Sass3 ๋ฒ์ ๋ถํฐ ์๋กญ๊ฒ ๋ฑ์ฅ
- SCSS๋ Sass์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ง์ํ๋ Superset
- SCSS๋ CSS์ ๊ฑฐ์ ๋น์ทํ ๋ฌธ๋ฒ์ผ๋ก Sass์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ด์ ํธ๋ฆฌํจ
๐ CSS์ ๋จ์
CSS๋ ๋ณต์กํ ์ธ์ด๋ ์๋์ง๋ง ์์
์ด ์ปค์ง๊ฑฐ๋ ์ฝ๋๊ฐ ๋ง์์ง๋ฉด ๋ถํธํจ์ด ์๊น
-> ์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง๋ค๋ ๋จ์ ์ด ์์
- ์ ํ์(Selector)๋ฅผ ๋ง๋ค๋ ๋งค๋ฒ ๋ถํ์ํ ๋ถ๋ชจ์์ ์ ํ์๋ฅผ ์ ์ด์ผ ํจ
- funtion๊ฐ์๊ฒ ์์ผ๋, ๊ท๋ชจ๊ฐ ํฐ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ์๋ํํ๊ธฐ ์ด๋ ต๊ณ ๋ชจ๋ ๊ฒ์ ์๋์ผ๋ก ๋ณ๊ฒฝํด์ผ ํจ
- ๊ฒฐ๊ตญ์๋ ์ค๋ณต๋๋ ์ฝ๋๊ฐ ๋ง์ ์ฝ๋ ์ค์๊ฐ ๊ธธ์ด์ ธ ์ ์ง๋ณด์์ ๋ง์ด๋์ค์ ์ธ ์์๊ฐ ๋จ
๐ SASS(Synthetically Awesome StyleSheets)
- Sass๋ ์ฝ๋์ ์ฌํ์ฉ์ฑ์ ์ฌ๋ฆฌ๊ณ , ๊ฐ๋ ์ฑ์ ์ฌ๋ฆฌ๋ ๋ฑ CSS์์ ๋ณด์ด๋ ๋จ์ ์ ๋ณด์ํ๊ณ , ๊ฐ๋ฐ์ ํจ์จ์ ์ฌ๋ฆฌ๊ธฐ ์ํด ๋ฑ์ฅํ CSS ์ ์ฒ๋ฆฌ๊ธฐ ์ธ์ด์
- CSS๋ฅผ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ฉฐ ์ถ๊ฐ ๊ธฐ๋ฅ ๋ํ ์๋ ํ์ฅํ ์คํธ๋ฆฝํธ ์ธ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋จ
CSS ์ ์ฒ๋ฆฌ๊ธฐ(Preprocessor) ์ธ์ด ๋?
- Sass, Less, stylus ์ด๊ฒ๋ค์ด ๋ฐ๋ก CSS ์ ์ฒ๋ฆฌ๊ธฐ
- ์ ์ฒ๋ฆฌ๊ธฐ ์ธ์ด๋ CSS ๋ฌธ๋ฒ๊ณผ ๊ต์ฅํ ์ ์ฌํ์ง๋ง ์ ํ์ ์ค์ฒฉ(Nesting)์ด๋ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ, ๋ค์ํ ๋จ์(Unit)์ ์ฐ์ฐ ๋ฑ ํ์ค CSS ๋ณด๋ค ํจ์ฌ ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํด์ ํธ๋ฆฌํ๊ฒ ์์ฑํ ์ ์์.
=> ์ฝ๋ ์์์ ๋๋ ์๊ฐ์ ์ค์ฌ์ฃผ๊ณ , ์ฝ๋๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋๋ฐ ๋์์ด ๋จ
โ์ฌ์ฉ๋ฒ
- Sass, Less, Styleus ์ ๊ฐ์ ์ ์ฒ๋ฆฌ๊ธฐ ์ธ์ด๋ ์ง์ ๋์์ํค๋๊ฒ ์๋
=> why? ์น์ CSS๋ฐ์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ
- ์ฐ์ ์ ์ฒ๋ฆฌ๊ธฐ ์ธ์ด ๋ฌธ๋ฒ์ผ๋ก ์์ฑ(์ฝ๋ฉ)ํ๊ณ , CSS๋ก ์ปดํ์ผํด์ ์น์ผ๋ก ๋์์ํค๋ ๊ฒ
=> ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ์คํฌ๋ฆฝํธ ๊ด๊ณ๋ผ๊ณ ๋ด๋ ๋ฌด๋ฐฉํจ
โ ์ ์ฒ๋ฆฌ๊ธฐ ์ธ์ด ์ฆ, Sass๋ CSS์ ๋์ฒด ์ธ์ด๊ฐ ์๋!!
Sass๋ CSS์ ํ์ฅ ์ ์ฒ๋ฆฌ๊ธฐ ์ธ์ด์ด๊ณ , ์ด๋ ๊ฒฐ๊ตญ CSS ์ฝ๋๋ฅผ ์์ฐํด๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ผ์ข ์ ๋๊ตฌ์ธ ์
Sass๊ฐ ์ ๊ณตํ๋ ๋ฌธ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ๋ค์, ์ด๋ฅผ ์ปดํ์ผํด CSS ํ์ผ์ ๋น๋ํ๋ ๊ฒ์ด Sass๋ฅผ ํตํด ์คํ์ผ์ํธ๋ฅผ ๋ง๋ฆ
โ๏ธSass(SCSS)์ ์ฅ์
- CSS๋ณด๋ค ์ฌํํ ํ๊ธฐ๋ฒ์ผ๋ก CSS๋ฅผ ๊ตฌ์กฐํํ์ฌ ํํํ ์ ์์
-> ๊ฐ๋ ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ฌ์ฃผ์ด ์ ์ง๋ณด์๊ฐ ์ฌ์์ง๊ฒ ๋จ - ์คํฌ ๋ ๋ฒจ์ด ๋ค๋ฅธ ํ์๋ค๊ณผ์ ์์ ์ ๋ฐ์ํ ์ ์๋ ๊ตฌ๋ฌธ์ ์์ค ์ฐจ์ด๋ฅผ ํ์คํํ ์ ์์
- CSS์ ํ๊ณ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด Sass๋ ๋ค์๊ณผ ๊ฐ์ ์ถ๊ฐ ๊ธฐ๋ฅ๊ณผ ์ ์ฉํ ๋๊ตฌ๋ค์ ์ ๊ณตํจ
- ๋ณ์์ ์ฌ์ฉ
- ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ
- Import (๋ชจ๋ํ)
- Nesting(์ ํ์ ๋ฐ๋ณต ์์ฑ ์ค์ฌ์ฃผ๋ ๊ธฐ๋ฅ)
- Mixin(ํจ์ ๊ฐ๋ )
- Extend / Inheritance(ํ์ฅ/์์)
- ์ ํ์์ ์ค์ฒฉ(Nesting)์ ํตํด ๋ฐ๋ณต๋๋ ๋ถ๋ชจ์์ ์ ํ์ ์ฌ์ฉ์ ์ค์ผ์ ์์
- ๋ณ์(Variable)์ ์ฌ์ฉํด์ CSS ์์ฑ๊ฐ์ ํต์ผํด์ ๊ด๋ฆฌํ ์ ์์
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉํ๋ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ์ ํตํด ๋์ ์ผ๋ก CSS ๊ณค๋ฆฌ๊ฐ ๊ฐ๋ฅํจ
- ์์๋๋ ์ ํ์๋ฅผ ๊ณ์ธต์ ์ผ๋ก ๋ช ์ํ์ฌ ๋ถํ์ํ ๋ฐ๋ณต์ ์ฌ์ฉ์ ์ค์ผ ์ ์์
โ๏ธSass(SCSS)์ ๋จ์
- ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ํ ๋๊ตฌ ํ์
- ์ปดํ์ผ ์๊ฐ ์์
๐ Sass ์ SCSS์ ์ฐจ์ด์
- Sass : ์ค๊ดํธ๊ฐ ์๋ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํจ
- SCSS : CSS์ฒ๋ผ {} ์ ;์ ์ฌ์ฉํจ
/* SASS */
$color: red
$color2: pink
a
color: $color
&:hover
color: $color2
/* SCSS */
$color: red;
$color2: pink;
a {
color: $color;
&:hover {
color: $color2;
}
}
/* CSS */
a {
color: red;
}
a:hover {
color: pink;
}
- ํ์ฅ์
- *.scss / *.sass ํ์ฅ์์ ๋ฐ๋ผ Sass ๋ฌธ๋ฒ์ผ๋ก ํ ์ง SCSS๋ก ํ ์ง ๋ฌ๋ผ์ง - ๋ฏน์ค์ธ(mixin)๋ฌธ๋ฒ
minxin(์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๋ฅ์ ๋ง๋๋ ๋ฐฉ์)์ด ใ ใ ์- Sass์ ๊ฒฝ์ฐ = ๋ก ์ ์ธํ๊ณ + ๋ก ์ ์ฉ์ํด
- SCSS์ ๊ฒฝ์ฐ @mixin์ผ๋ก ์ ์ธํ๊ณ @include๋ก ์ ์ฉ์ํด
/* SASS */
@main-font: "..."
=title($font)
font-size:30px
font-family: $font
#header
+title($main-font)
/* SCSS */
@main-font: "..."
@mixin title($font){
font-size:30px;
font-family: $font;
}
#header{
@include title($main-font)
}
๐ Sass ๋์ SCSS์ฐ๋ ์ด์
- SCSS 2010๋ 5์ ํฌ๋กฌ๋ฒ์ 3๋ก ์ ๊ทธ๋ ์ด๋ํ๋ฉด์ ๊ฐ์ถฐ์ง ์๋ก์ด ๋ฌธ๋ฒ ์ฒด๊ณ
- CSS ๋ฌธ๋ฒ์ SCSS ๋ฌธ๋ฒ ์์์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก, CSS ํต๊ณผ IE์ filter์ ๊ฐ์ ํน์ ๋ธ๋ผ์ฐ์ ๋ฒค๋์ฉ ๋ฌธ๋ฒ๋ ํฌํจํ์ฌ CSS๊ฐ ์ง์ํ๋ ๋ชจ๋ ๋ฌธ๋ฒ๊ณผ ๊ธฐ๋ฅ์ SCSS์์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์
- ์ด๋ฌํ ํธํ์ฑ ๋์ ๋ชจ๋ CSS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ทธ๋๋ก ์ด์ด์ ์ฌ์ฉํ ์ ์๊ณ , ๊ธฐ์กด CSS๋ฅผ SCSS๋ก ์ ํํ๋ ์์ ์ ์ฝ๊ฒ ์์ํ ์ ์์
=> ์ ์ธ๊ณ์ ์ผ๋ก SCSS ์ฌ์ฉ์ ์, SCSS๋ฅผ ํ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ&ํ๋ ์์ํฌ ์๊ฐ SASS๋ณด๋ค ๋ง์
- ๊ณต์ ๋ฌธ๋ฒ
๊ณต์ ๋ ํผ๋ฐ์ค๋ SCSS ๋ฌธ๋ฒ์ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ ๋ฌธ๋ฒ์ ์ค๋ช ํ๊ณ ์์๋ฅผ ๋ณด์ฌ์ค - ๋ ๋์ ์ฌ์ฉ์
๋ค์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํ๋ ์์ํฌ๊ฐ SCSS๋ฌธ๋ฒ์ ํ์ฉํ๋ ๋ฑ ์๋ก์ด ๋ฌธ๋ฒ์ด ๋์ฑ ๋๋ฆฌ ์ฐ์ - CSS ํธํ์ฑ
์น๊ทผํ CSS ๋ฌธ๋ฒ์ Sass์ CSS ์ฌ์ด์ ํ์ ์ค์ฌ์ฃผ๊ณ , ๊ธฐ๋ฅ์ ์ผ๋ก๋ ํ์ ์ฑ์ ๋์ - ์ฌ๋ฌ ์ค ์ฐ๊ธฐ ์ง์
Sass ๋ฌธ๋ฒ์ ๋ค์ฌ์ฐ๊ธฐ์ ์ค ๋ฐ๊ฟ์ด ๋ฌธ๋ฒ์ ์ค์ํ ์์์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์ค ์ฐ๊ธฐ๋ฅผ ์ง์ํ์ง ์์
โ๏ธโ๏ธbut, ์์ ํ ๋์ผํ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๋ ๊ฒ์ ์ฌ์ฉํ ์ง๋ ํ์ด์ฌ ๊ตฌ๋ฌธ ์คํ์ผ์ ์ต์ํ๋ฉด Sass๋ฅผ, ์๋ฐ์คํฌ๋ฆฝํธ ๊ตฌ๋ฌธ ์คํ์ผ์ ์ต์ํ๋ฉด SCSS๋ฅผ ์ฌ์ฉํ๋ฉด ๋จ
'IT > CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
::before, ::after ๊ฐ์ ์์(Pseudo-elements) (0) | 2024.01.31 |
---|