CSS : SCSS
์ด๋ฒ ์๊ฐ์๋ CSS ์ธ์ด ์ค ํ๋์ธ SCSS์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค!๐
#1. SCSS๋?
์ฝ๋ฉ์ด ๋ณต์กํด์ง๊ฒ ๋๋ฉด ์ฝ๋์ ์ค๋ณต ๋ฐ ์ค๋ฅ ๋ฑ์ ์ด์ ๋ก CSS๋ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง๊ณ ๊ฐ๋
์ฑ ๋ํ ๋จ์ด์ง๊ฒ ๋ฉ๋๋ค.
์ด๋ฌํ CSS์ ๋จ์ ์ ๋ณด์ํ๊ณ ์ ๋ฑ์ฅํ ๋ฌธ๋ฒ์ด SCSS๋ผ๊ณ ํฉ๋๋ค. SCSS๋ Syntactically Awesome StyleSheet์ ์ฝ์ด๋ก ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ , ๊ฐ๋
์ฑ์ ์ฆ๊ฐ์์ผ ๊ฐ๋ฐ์ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํ ์ ์ฒ๋ฆฌ๊ธฐ ์ธ์ด์
๋๋ค.
!! ์ฌ๊ธฐ์ ์ค์ํ ์ ์ SCSS์ธ์ด๋ก ์ง์ ๊ตฌํํ๋ ๊ฒ์ด ์๋๋ผ Scss๋ก ์์
ํ CSS์ธ์ด๋ก ์ปดํ์ผํ์ฌ ์น์ ๊ตฌํ์ํค๋ ์๋ฆฌ๋ผ๋ ๊ฒ ์
๋๋ค! ์ฆ CSS์ ๋์ฒด ์ธ์ด๊ฐ ์๋ ์ข ๋ ํจ์จ์ ์ผ๋ก CSS ์ฝ๋ ์์
์ ํ ์ ์๋ ๋๊ตฌ์ ๊ฐ๋
์ด๋ผ ๋ณผ ์ ์์ต๋๋ค๐
1-1 SCSS์ ๋ณ์
SCSS์์๋ ์ฌ๋ฌ ์ถ๊ฐ ๊ธฐ๋ฅ๋ค์ด ์๋๋ฐ ๊ทธ ์ค ๋ณ์๋ฅผ ์ ์ธํ์ฌ ์์ฑ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ SCSS์ ์ฅ์ ์ค ํ๋์ธ ์ฌ์ฌ์ฉ์ฑ์ ๋์ฌ์ฃผ๋ ๊ธฐ๋ฅ์ ๋๋ค.
! ๋ณ์ ($) ์ฌ์ฉ๋ฒ !
$๋ณ์๋ช
: ์์ฑ๊ฐ;
SCSS์์ $๋ ๋ณ์๋ฅผ ๋ปํ๋ ๊ธฐํธ ์
๋๋ค. ๋๋ฌธ์ ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉํ ์์ฑ์ ๋ณ์($)๋ก ์์ฑ ๊ฐ์ ์ง์ ํด์ฃผ์ด ์ฌ์ฌ์ฉ์ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
โ๏ธ SCSS
$font-stack: Helvetica, sans-serif;
$primary-color: #333;
body {
font: 100% $font-stack;
color: $primary-color;
}
CSS ์ปดํ์ผ ver.
โ๏ธ CSS
body {
font: 100% Helvetica, sans-serif;
color: #333;
}
1-2. SCSS์ ๋ค์คํ (์ค์ฒฉ) ๊ธฐ๋ฒ
๋ค์คํ
๊ธฐ๋ฒ์ SCSS์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ๋ฐ๋ก ์ ํ์ ๋ฐ ์์ฑ์ ์ค์ฒฉ์ํฌ ์ ์์ผ๋ฉฐ ์์ ์์๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์
๋๋ค.
ํนํ HTML ์ฝ๋๊ฐ ๋ณต์กํ ์๋ก ์ถฉ๋์ ์ค์ด๊ธฐ ์ํด CSS์์๋ ์๋ง์ ์ ํ์๋ค์ ํ๊ทธ๋ง๋ค ์ ์ธํด์ค๋๋ค. ํ์ง๋ง ์ด๋ฌํ ๋ฐฉ๋ฒ์ ๊ต์ฅํ ๋ฒ๊ฑฐ๋กญ๊ธฐ ๋ง๋ จ์ด์ฃ .
SCSS์ ๋ค์คํ
๊ธฐ๋ฒ ์ค ํ๋์ธ ์ ํ์ ์ค์ฒฉ์ ์ฌ์ฉํ๋ค๋ฉด ๊ฐ๋
์ฑ์ด ๋์์ง๊ณ , ํจ์จ์ ์ธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํด์ง๋ฉฐ ๋ ๋์๊ฐ HTML์ ์ฝ๋์ ๊ฐ๋
์ฑ๋ ๋์์ง๊ฒ ๋ฉ๋๋ค.
! ๋ค์คํ
๊ธฐ๋ฒ๊ณผ & ๊ธฐํธ ์ฌ์ฉ ๋ฐฉ๋ฒ !
& = ๋ถ๋ชจ ์ ํ์
&:๊ฐ์ ์์(or ๊ฐ์ ํด๋์ค) {};
๐ก ๊ทธ๋ผ ๋ค์์ ์์ ๋ฅผ ํตํด ๋ค์คํ ๊ธฐ๋ฒ์ ์ดํดํด๋ณด๋๋ก ํฉ์๋ค!
โ๏ธ SCSS ์ค์ฒฉ01
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li { display: inline-block; }
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
}
๐ก ์์ SCSS์ฝ๋๋ฅผ CSS ์ธ์ด๋ก ํ์ธํด๋ด ์๋ค!
โ๏ธ 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;
}
! ์ค๋ช
!
์ ์์ ๋ฅผ ๋ณด๋ฉด nav๊ฐ ๋ถ๋ชจ ์์์์ ์ ์ ์์ฃ ?!
CSS๋ ๋ชจ๋ ์์์์์ ๋ถ๋ชจ์์ ์ ํ์๋ฅผ ๋ถ์ฌ์ ์์
ํด์ผ ํ์ง๋ง SCSS์์๋ ๋ถ๋ชจ ์์์ {}์ ๋ถ๋ชจ ์์์์ด ์์ ์์๋ง ์ ์ธํ์ฌ ์์
ํ ์ ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๋์ ์ฃผ์ํ ์ ์ SCSS์์๋ ๋ถ๋ชจ - ์์ ๊ด๊ณ๋ฅผ ์๋ ค์ฃผ๋ ๋ผ์ธ ์ ๋ ฌ์ด ์ค์ํ๊ธฐ ๋๋ฌธ์ ๊ผญ ํ์ธํด๊ฐ๋ฉฐ ์ฌ์ฉํด์ค๋๋ค.
โ๏ธ SCSS ์ค์ฒฉ02
label {
padding: 3% 0px;
width: 100%;
cursor: pointer;
color: $colorPoint;
&:hover {
color: white;
background-color: $color;
}
&:before {
content: '';
}
}
๐ก ์์ SCSS์ฝ๋๋ฅผ CSS ์ธ์ด๋ก ํ์ธํด๋ด ์๋ค!
โ๏ธ CSS ์ปดํ์ผ
label {
padding: 3% 0px;
width: 100%;
cursor: pointer;
color: $colorPoint;
}
label:hover {
color: white;
background-color: $color8;
}
label::before {
content: '';
}
! ์ค๋ช
!
์ ์์ ๋ฅผ ๋ณด๋ฉด ์์ ์์ ๋ฟ๋ง ์๋๋ผ :hover์ ::before๊ฐ์ ๊ฐ์ํด๋์ค์ ๊ฐ์์์๋ &(=๋ถ๋ชจ ์ ํ์)๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ธํ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
&๋ฅผ ์ด์ฉํ ์ค์ฒฉ๋ ์์ ์ค์ฒฉ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํด๋น ๋ถ๋ชจ ์์์ {}์์ ๋ผ์ธ์ ์ ๋ง์ถฐ์ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ด์ฒ๋ผ ๋ค์คํ
๊ธฐ๋ฒ์ ์ฌ์ฉํ ๋ ๊ฐ ํ๊ทธ ๊ฐ ๊ด๊ณ๋ฅผ ์ ์ดํดํ์ฌ ์ค์ฒฉํ๋ ๊ฒ์ด ์ค์ํ๋ฉฐ ์ค์ฒฉ์ ๋๋ฌด ๋จ๋ฐํ๋ฉด ํ์ค์ฑ์ ์ด๊ธ๋๊ธฐ ๋๋ฌธ์ ์ ์ ํ๊ฒ ์ฌ์ฉํด์ฃผ์ด์ผ ํฉ๋๋ค.
๋ค์ ์๊ฐ์๋ SCSS๋ฅผ ์ฌ์ฉํ ๐ถ ์์ง์ด๋ ๊ฐ์์ง ์ผ๋ฌ์คํธ ๐ถ๋ฅผ ์ค์ตํด๋ณด๊ฒ ์ต๋๋ค. ๊ณ ์๋ง์ผ์
จ์ต๋๋ค๐คฉ
'CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CSS] ์ด๋ฏธ์ง ์คํ๋ผ์ดํธ ๊ธฐ๋ฒ + irํจ๊ณผ / ๋ฐฑ๊ทธ๋ผ์ด๋ (3) | 2022.08.22 |
---|---|
[CSS] SCSS ์ค์ต01 : ์์ง์ด๋ ๊ฐ์์ง ์ผ๋ฌ์คํธ ๐ถ (4) | 2022.08.19 |
[CSS] ๋ฏธ๋์ด์ฟผ๋ฆฌ (3) | 2022.08.16 |
[CSS] ๊ธฐ๋ณธ ๋ฌธ๋ฒ (3) | 2022.08.16 |
[CSS] ์ด๋ฏธ์ง ํํ ๋ฐฉ์ : ๋ฒกํฐ์ ๋นํธ๋งต (6) | 2022.08.10 |
๋๊ธ