IT/CSS
SCSS(SASS) vs CSS
๋ฌด๋
2022. 4. 23. 00:10
SCSS
๐ CSS์ ํ๊ณ
- ์ ํ์(Selector)๋ฅผ ๋ง๋๋ ๊ด์ ์์ ๋ณผ ๋ ๋ถํ์ํ ๋ถ๋ชจ ์์ ์ ํ์๋ฅผ ๋งค๋ฒ ์ ์ด์ผ ํ๋ค.
- ๊ท๋ชจ๊ฐ ์ปค์ง๋ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ์๋ ์ผ์ํ๋ ์๋ํ๊ฐ ์ด๋ ต๊ณ ์๋์ผ๋ก ๋ชจ๋ ๊ฒ๋ค์ ์์ ๋ณ๊ฒฝํด์ผ ํ๋ค.
๐ SCSS(SASS)์ ์ฅ, ๋จ์
- ์ ํ์์ ์ค์ฒฉ(Nesting)์ ํตํด ๋ฐ๋ณต๋๋ ๋ถ๋ชจ ์์ ์ฌ์ฉ์ ํ์ ํ๊ฒ ์ค์ผ ์ ์๋ค.
- ๋ณ์(Variable)๋ฅผ ์ฌ์ฉํด์ CSS ์์ฑ๊ณผ ๊ฐ์ ์ผ์ํ๋ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ฌ์ฉํ๋ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด์ ๋์ ์ธ CSS ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
- SCSS(SASS)๋ CSS๋ก ์ปดํ์ผ(Complie) ๊ฑฐ์ณ์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๋ค.
- ํ์ง๋ง ๊ฑฐ์ ์ ์ผํ ๋จ์ ์ธ ์ปดํ์ผ์ ๊ฑฐ์ณ์ผ ํ๋ ๋ฌธ์ ์ ์ extension์ผ๋ก ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค.
- ํด๋์ค ๋ช ์ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ SCSS์ ๊ฒฝ์ฐ. frame์ ํ ๋ฒ๋ง ๋ณ๊ฒฝํ๋ฉด ๋์ง๋ง, CSS์ ๊ฒฝ์ฐ. frame์ด ๋ค์ด๊ฐ ๋ชจ๋ ์ ํ์๋ฅผ ์ฐพ์๊ฐ์ ๋ณ๊ฒฝํด์ค์ผ ํ๋ค.
// .scss
.frame {
padding: 20px;
.items {
font-weight: bold;
color: crimson;
.item {
margin: 10px;
font-size: 18px;
border: 1px solid #000;
}
}
}
// .css
.frame {
padding: 20px;
}
.frame .items {
font-weight: bold;
color: crimson;
}
.frame .items .item {
margin: 10px;
font-size: 18px;
border: 1p sold #000;
}
๐ SCSS์ SASS์ ์ฐจ์ด์
- SASS: Syntatically Awesome Style Sheets
- SCSS: Sassy Cascading Style Sheets
- SASS๊ฐ ๋จผ์ ์๊ฒจ๋ฌ๊ณ ๋์ค์ SCSS๊ฐ ์๊ฒจ๋ฌ๋ค. ๊ทธ๋ฆฌ๊ณ SASS์ SCSS๋ ์๋ก ์๋ฒฝํ๊ฒ ํธํ๋๋ค.(์ต๊ทผ์๋ ์ฃผ๋ก SCSS๋ฅผ ์ฌ์ฉํ๋ค)
- {}(์ค๊ดํธ)์ ;(์ธ๋ฏธ์ฝ๋ก )์ ์ ๋ฌด์ ๋ฐ๋ฅธ ์ฌ์ฉ ๋ฐฉ์์ด ์์ฃผ ์กฐ๊ธ ๋ค๋ฅด๋ค.
- SASS๋ ์ค๊ดํธ์ ์ธ๋ฏธ์ฝ๋ก ์ ์ฌ์ฉํ์ง ์๊ณ , SCSS๋ ์ค๊ดํธ์ ์ธ๋ฏธ์ฝ๋ก ์ ์ฌ์ฉํ๋ค.
- ๊ทธ๋์ SCSS๊ฐ CSS์ ๊ฐ์ ๋ฐฉ์์ด๋ผ ์ฌ์ฉ ๋ฐ ์ดํดํ๊ธฐ ๋ ์ฝ๋ค.
- ํ์ผ ํ์ฅ์๋ SASS๋ .sass์ด๊ณ , SCSS๋ .scss์ด๋ค.
- ์ฌ์ฌ์ฉ ๊ธฐ๋ฅ์ ๋ง๋๋ ๋ฐฉ์์ธ ๋ฏน์ค์ธ(Mixins)์์ ๊ฑฐ์ ์ ์ผํ ์ฐจ์ด๊ฐ ๋๋ค.
// .scss
.frame {
padding: 20px;
.items {
font-weight: bold;
color: crimson;
.item {
margin: 10px;
font-size: 18px;
border: 1px solid #000;
&:hover {
background-color: blue;
}
}
}
}
// .sass
.frame
padding: 20px
.items
font-weight: bold
color: crimson
.item
margin: 10px
font-size: 18px
border: 1px solid #000
&:hover
background-color: blue
๋ฐ์ํ