CSS : SCSS ์์๋ณด๊ธฐ
CSS๋ ๋น๊ต์ ๋ฐฐ์ฐ๊ธฐ ์ฌ์ด ํธ์ด์ง๋ง, ๋ถํธํ ์ ์ด ๋ง์ต๋๋ค. ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก, ๋ถํ์ํ ์ ํ์์ ๊ณผ์ฉ, ์ฐ์ฐ ๊ธฐ๋ฅ์ ํ๊ณ, ๊ตฌ๋ฌธ์ ๋ถ์ฌ ๋ฑ ๋ถํธ์ ๋๋ ๊ฒ์ ๋๋ค. ๊ทธ ๋ถํธ์ ํด์ํ๊ธฐ ์ํด, ์ฐ๋ฆฌ๋ CSS Preprocessor๋ผ๊ณ ๋ถ๋ฆฌ์ฐ๋ Sass, Less, SCSS ๋ฑ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ค๋์ ๊ทธ ์ค, SCSS์ ๋ํ์ฌ ์์๋ณด๊ฒ ์ต๋๋ค.
SCSS๋?
CSS๋ HTML ํ๊ทธ๋ฅผ ๊พธ๋ฏธ๊ฑฐ๋ ํจ๊ณผ๋ฅผ ๋ฃ์ด ์ฃผ๋ ๋ฑ ๋์์ธ ์์๋ฅผ ์ถ๊ฐํ ๋ ์ฌ์ฉํ๋ ์ ์ฒ๋ฆฌ ๊ณผ์ ์ ๋๋ค. ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด CSS๋ ๋ถ๊ฐํผํ๊ฒ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ ๋ฑ ์ ์ง๋ณด์์ ์ด๋ ค์์ ์ฃผ๋ ์์๊ฐ ๋ฉ๋๋ค. ์ฝ๋์ ์ฌํ์ฉ์ฑ์ ์ฌ๋ฆฌ๊ณ , ๊ฐ๋ ์ฑ์ ์ฌ๋ฆฌ๋ ๋ฑ CSS์์ ๋ณด์ด๋ ๋จ์ ์ ๋ณด์ํ๊ณ , ๊ฐ๋ฐ์ ํจ์จ์ ์ฌ๋ฆฌ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ์ด ๋ฐ๋ก SCSS์ ๋๋ค.
SCSS์ ๊ธฐ๋ฅ
1. ๋ณ์ ๊ธฐ๋ฅ
๋ณ์๋ฅผ ์คํ์ผ์ํธ ์ ์ฒด์์ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ธ๊ผด ์คํ ๋๋ ์ฌ์ฌ์ฉํ๊ณ ์ถ์ CSS ๊ฐ๊ณผ ๊ฐ์ ํญ๋ชฉ์ ์ ์ฅํ ์ ์์ต๋๋ค. Sass๋ $ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌด์ธ๊ฐ๋ฅผ ๋ณ์๋ก ๋ง๋ญ๋๋ค.
body {
font: 100% Helvetica, sans-serif;
color: #333;
}
์ CSS ์ฝ๋๋ฅผ SCSS์์๋ ์๋์ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค.
$font-stack: Helvetica, sans-serif;
$primary-color: #333;
body {
font: 100% $font-stack;
color: $primary-color;
}
2. ์ค์ฒฉ ๊ธฐ๋ฅ
HTML์์๋ ์ค์ฒฉ๋๊ณ ์๊ฐ์ ์ธ ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ์์ง๋ง, CSS๋ ๊ทธ๋ ์ง ์์ต๋๋ค. SCSS๋ฅผ ์ฌ์ฉํ๋ฉด HTML์ ๋์ผํ ์๊ฐ์ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅด๋ ๋ฐฉ์์ผ๋ก CSS ์์๋ค์ ์ค์ฒฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๋์น๊ฒ ์ค์ฒฉ๋ ๊ท์น์ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์ฐ๋ฏ๋ก, ๊ณผ๋ํ๊ฒ ์์๋ค์ ์ค์ฒฉํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค.
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav li {
display: inline-block;
}
nav a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
์ CSS ์ฝ๋๋ฅผ SCSS์์๋ ์๋์ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค.
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li { display: inline-block; }
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
}
ul, li, a ๊ฐ๊ฐ์ ์์๋ค์ด nav ์์ ๋ด๋ถ์ ์ค์ฒฉ๋์ด ์์์ ์ ์ ์์ต๋๋ค.
'CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CSS : ๋จ์ (5) | 2022.08.23 |
---|---|
CSS : ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ(image sprite) (5) | 2022.08.22 |
CSS : ์ ๋๋ฉ์ด์ ๋ง๋ค๊ธฐ : ๊ผฌ๋ฆฌ๋ฅผ ํ๋๋ ๊ฐ์์ง (9) | 2022.08.18 |
CSS : ๋ฏธ๋์ด์ฟผ๋ฆฌ(media query) (5) | 2022.08.15 |
CSS : ๊ธฐ๋ณธ ๋ฌธ๋ฒ (6) | 2022.08.12 |
๋๊ธ