SCSS λ CSS λ₯Ό μ’λ μ½κ² μμ±μμΌμ£Όλ μ μ²λ¦¬κΈ°(Compiler) μ λλ€.
κ°μ₯ λμ λ°λ μ΄μ μ μ€μ²©μ κ°μν μμΌμ€λλ€.
.conatiner {
}
.conatiner .inner{
}
.conatiner .inner .menu {
}
.conatiner .inner .menu .main-menu{
}
CSSλ νμ μμλ₯Ό λ릴λλ§λ€ μμ μμλ₯Ό μ λΆ μ μ΄μ€μΌ ν©λλ€.
νμ§λ§ SCSS λ νλ‘κ·Έλλ° μΈμ΄ μ²λΌ μ€μ²©μ μ§μν©λλ€.
.conatiner{
.inner{
.menu{
.main-menu{
}
}
}
}
μμμ νμ
> κΊ½μ κΈ°νΈλ₯Ό μ¨μ€λλ€.
.conatiner{ //.conatiner > .inner { }
>.inner{}}
μΌμΉμ νμ
& μ νΌμΌλ κΈ°νΈλ₯Ό μ¨μ€λλ€.
//scss
.list {
li {
&:last-child {
margin-right: 0;
}
}
}
.list li:last-child {
margin-right: 0;
}
νΉμ μμ μ νμλ₯Ό μ°Έμ‘° ν μλ μμ΅λλ€.
.fs {
&-small { font-size: 12px; }
&-medium { font-size: 14px; }
&-large { font-size: 16px; }
}
.fs-small {
font-size: 12px;
}
.fs-medium {
font-size: 14px;
}
.fs-large {
font-size: 16px;
}
margin : {};
λ margin-
λ‘ λ°λλλ€
body {
margin:{
top:20px;
right: 30px;
bottom: 40px;
left: 10px;
};
}
body {
margin-top: 20px;
margin-right: 30px;
margin-bottom: 40px;
margin-left: 10px;
}
SCSS μμλ λ³μλ₯Ό μ μΈνκ³ μ§μ ν μ μμ΅λλ€.
body {
top:100px;
.item{
width:100px;
height: 100px;
}
}
$
λ¬λ¬ μ¬μΈμΌλ‘ size:100px;
λ₯Ό μ μΈνκ³ $size λ₯Ό μ
λ ₯νλ©΄ λμΌνκ² μΆλ ₯λ©λλ€.
$size:100px;
body {
top:$size;
.item{
width:$size;
height: $size;
}
}
λ€λ§ μ μΈλ κ³³
μ λ°λΌ λ³μμ¬μ©μ΄ κ°λ₯ν©λλ€.
λΈλ‘ μμ μ μΈλλ©΄ κ·Έ λΈλ‘μμλ§, μ μ 곡κ°μμ μ μΈλλ©΄ css μ 체μμ μ¬μ©μ΄ κ°λ₯ν©λλ€.
μλ μ°μ μ°μ°μ ν΄λ³΄κ² μ΅λλ€.
SCSS
box {
width: 50px + 20px;
height: 40px - 20px;
margin-top: 50px*2;
margin-bottom: 40px / 2;
margin-left: 20px % 6 ;
}
CSS
box {
width: 70px;
height: 20px;
margin-top: 100px;
margin-bottom: 40px/2; // κ³μ°μλ¨
margin-left: 2px;
}
λ€λ§ λ¬Έμ κ° μμ΅λλ€.
css μμλ / κΈ°νΈ
λ₯Ό λ¨μΆ κΈ°νΈλ‘ μΈμ νκΈ° λλ¬Έμ μλμ κ°μ λ°©λ²μ μ¬μ©ν΄μΌ ν©λλ€.
1. λ³μ μ μΈνκΈ°
λ³μλ₯Ό μ μΈνκ³ λλκΈ° κΈ°νΈλ₯Ό μ¬μ©νλ€. ex) $size / 2
2.κ΄νΈλ₯Ό μ¬μ©νλ€
(40px / 2) == 20px
! μ°μ μ°μ°μ κ°μ λ¨μλΌλ¦¬ κ³μ°ν΄μΌν©λλ€.
λ§μ½ λ€λ₯Έ λ¨μ λΌλ¦¬ κ³μ°νλ €λ©΄calc()
ν¨μλ₯Ό μ΄μ©ν΄μΌν©λλ€.
@mixin μ μ΄μ©νλ©΄ μμ±κ°μ λͺ¨μμ λ³μμ²λΌ μ¬μ©ν μ μμ΅λλ€.
SCSS
@mixin size { // size μ μΈ
height: 100px;
width: 100px;
color:green
}
.container{
@include size; //size λμ
.item{
@include size;
}
}
CSS
.container {
height: 100px;
width: 100px;
color: green;
}
.container .item {
height: 100px;
width: 100px;
color: green;
}
λ§μ½ .container λ 100px
μΌλ‘ itemμ 50px
λ‘ λ°κΎΈλ €λ©΄ μ΄λ»κ² ν΄μΌν κΉμ?
@mixin
λ μ μΈν λ μΈμλ₯Ό λ°μμ μμ΅λλ€.
SCSS
@mixin size($sz) {
height: $sz;
width: $sz;
color:green;
}
.container{
@include size(100);
.item{
@include size(50);
}
}
.container {
height: 100;
width: 100;
color: green;
}
.container .item {
height: 50;
width: 50;
color: green;
}
λ§μ½ μΌμΌν μΈμκ°μ λμ νλκ² λ²κ±°λ‘μΈλλ 맀κ°λ³μμ κΈ°λ³Έκ°μ μ€μ ν΄μ€μ μμ΅λλ€.
@mixin size($sz:100px)
κΈ°λ³Έκ° κ·Έλλ‘ μ¬μ©νκ³ μΆμλ@include size
κ·Έλλ‘ μ¬μ©ν μ μμ£ λ‘ μ¬μ©ν μ μμ£
μ°Έκ³ μλ£ : https://heropy.blog/2018/01/31/sass/