CSS ์ ์ฒ๋ฆฌ๊ธฐ๋ก์ CSS์ ํ๊ณ๋ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค.
SASS ์ SCSS๊ฐ ํฌํจ๋์ด ์๋๋ฐ, SCSS๋ SASS 3๋ฒ์งธ ๋ฒ์ ์์ ์ถ๊ฐ๋์๊ณ ,
SASS์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ง์ํ๋ฉด์ CSS ๊ตฌ๋ฌธ๊ณผ ์์ ํ ํธํ๋๋๋ก ๋ง๋ค์ด์ก์ต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
๋ณ์ ์ค์
$
ํ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ์๋ช ์ ์ง์ ํ ์ ์์ต๋๋ค.$hongsi-1: 1; $HONGSI_2 : 2; $hongsi: 'hongsi';
- ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉ๋๋ ํฐํธ๋ ์์ ๋ฑ์ ๋ณ์๋ก ์ง์ ํด ๊ฐ๋จํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค.
- ๊ท์น
- ๋ฌธ์๋ฅผ ๋ฃ์ ๋ '' ์ฌ์ฉ
- ์ ์์ฌํญ : ์ํ๋ฒณ, -, _, 123 ์ฌ์ฉ ๊ฐ๋ฅ
- ๋์๋ฌธ์ ๊ตฌ๋ถ
- ์ซ์๋ก ๋ณ์๋ช ์์ X
Nesting(์ค์ฒฉ)
- SASS์์๋ Nesting ๊ธฐ๋ฅ์ ์ฌ์ฉํด ์์ ์ ํ์์ ๋ฐ๋ณต์ ํผํ ์ ์์ต๋๋ค.
- ๋ํ html ๊ตฌ์กฐ๋ฅผ ๋ฐ์ํด์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ธฐ ๋๋ฌธ์ CSS์ ๊ตฌ์กฐ๋ฅผ ๋ช ํํ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
body { background-color: $bg; }
.box {
margin-top: 50px;
&:hover {
background-color: green;
}
h2 {
color: red;
}
button {
color: yellowgreen;
}
}
- Nesting ๊ธฐ๋ฅ์ ์ด์ฉํ ์ค์ฒฉ ์์ `&` ๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ๋ชจ ์ฐธ์กฐ ์ ํ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
<br>
### Mixin
- ์ฌ์ฌ์ฉ์ฑ์ด ํต์ฌ
- `@mixin`์ผ๋ก ์ฌ์ฌ์ฉํ ์คํ์ผ์ ์ ์ํ๊ณ ํ์ํ ๋ถ๋ถ์์ `@include`๋ฅผ ํตํด ๋ถ๋ฌ์ต๋๋ค.
```css
@mixin title {
color: blue;
font-size: 30px;
margin-bottom: 12px;
}
-----------------------------
@import '_mixin.scss';
body {
background-color: $bg;
}
h1 {
@include title();
}
์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ
- if๋ฌธ๊ณผ ๋น์ทํ๊ฒ
@if
,@else
๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ๋ฐ๋ผ CSS๋ฅผ ๋ฐํ ํฉ๋๋ค. - for๋ฌธ๊ณผ ๋น์ทํ๊ฒ
@for
through
์to
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ๋ณต๋ฌธ์ ๋ง๋ค ์ ์์ต๋๋ค. - while๋ฌธ๊ณผ ๋น์ทํ๊ฒ
@while
์ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ด ๋ ๋๊น์ง ๋ด์ฉ์ ๋ฐ๋ณตํ ์ ์์ต๋๋ค. //๊ธฐ๋ณธ @if ์ง์๋ฌธ @if(์กฐ๊ฑด์) { //์กฐ๊ฑด์ด ์ฐธ์ผ ๋ ํํ์ }
//@if @else๋ฌธ
@if(์กฐ๊ฑด์) {
//์กฐ๊ฑด์ด ์ฐธ์ผ ๋ ํํ์
} @else {
//์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ ๋ ํํ์
}
//๋ค์ค @if๋ฌธ
@if(์กฐ๊ฑด์1) {
์กฐ๊ฑด์1์ด ์ฐธ์ผ ๋ ํํ์
} @else if(์กฐ๊ฑด์2) {
//์กฐ๊ฑด์2๊ฐ ์ฐธ์ผ ๋ ํํ์
} @else {
//์กฐ๊ฑด์์ด ๋ชจ๋ ๊ฑฐ์ง์ผ ๋ ํํ์
}
// through - ์์๋ถํฐ ์ข
๋ฃ์กฐ๊ฑด๊น์ง ๋ฐ๋ณต
@for $๋ณ์ from ์์ through ์ข
๋ฃ {
// ๋ฐ๋ณต๋ด์ฉ
};
// to - ์์๋ถํฐ ์ข
๋ฃ์กฐ๊ฑด ์ง์ ๊น์ง ๋ฐ๋ณต
@for $๋ณ์ from ์์ to ์ข
๋ฃ {
//๋ฐ๋ณต๋ด์ฉ
};
@while ์กฐ๊ฑด {
//๋ฐ๋ณต ๋ด์ฉ
}
์ฐธ๊ณ
'๐ Front-End > CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
background-img ๊ฒฝ๋ก (0) | 2022.10.20 |
---|---|
CSS ์ ์ฒ๋ฆฌ๊ธฐ (0) | 2022.10.20 |
CSS ์ ๋๋ฉ์ด์ ๊ณผ JS ์ ๋๋ฉ์ด์ ์ ์ฐจ์ด์ (0) | 2022.10.20 |
Resetting๊ณผ Normalizing CSS (0) | 2022.10.20 |
CSS ์ฐ์ ์์ (0) | 2022.10.20 |