데이터 종류
$number: 1;
$string: bold;
$color: red;
$boolean: true;
$null: null;
$list: royalblue, orange, yellow;
$map: (
r: royalblue,
o: orange,
y: yellow
);
-
숫자 데이터
단순한 숫자만이 아닌 px, em 등의 단위가 붙은 것들도 숫자 데이터에 포함된다.
-
문자 데이터
bold, relative, “ 따옴표 ” 등이 문자 데이터이다.
단, red나 blue같은 실제 css에서 적용되는 문자들은 문자 데이터가 아니다. -
색상 데이터
red, blue, #FFFF00, rgba(0,0,0,.1) 등 색상을 나타나게 하는 것들을 색상데이터라고 한다.
-
boolean
true, false 만이 boolean 데이터로, 참과 거짓을 말한다.
-
null
아무것도 의미하지 않는 빈 데이터를 말한다.
-
list
자바스크립트의 배열 데이터와 유사한 데이터이다.
데이터들을 쉼표로 구분해서 순서대로 정렬한 것이 list이다. -
map
자바스크립트의 객체 데이터와 유사하다.
기본적으로 key, value 형태로 구성되어 있다.
다른점은, 자바스크립트이 객체 데이터는 중괄호로 나타내는 반면에 map 데이터는 소괄호로 나타낸다.
반복문 @each
list와 map 데이터를 다루기 위해서 @each 키워드를 사용할 수 있다.
해당 키워드는 list와 map 데이터의 반복문을 만들어 낼 수 있다.
$list: royalblue, orange, yellow;
$map: (
r: royalblue,
o: orange,
y: yellow
);
- list 데이터 @each 반복
@each $c in $list { .box { color: $c; } }
@each 키워드를 통해서 $list 변수안에 있는 데이터들을 반복적으로 c변수에 담아서 중괄호 안에서 처리한다는 의미이다.
.box { color: royalblue; } .box { color: orange; } .box { color: yellow; }
- map 데이터 @each 반복
@each $k, $v in $map { .box-#{$k} { color: $v; } }
list 데이터와 구조는 유사하다. 다른 점은 map 데이터는 변수 부분을 key, value 형태로 만들 수 있다는 것이다.
.box-r { color: royalblue; } .box-o { color: orange; } .box-y { color: yellow; }
재활용 @content
@mixin left-top {
position: absolute;
top: 0;
left: 0;
@content;
}
.container {
width: 100px;
height: 100px;
@include left-top;
}
.box {
width: 200px;
height: 300px;
@include left-top {
bottom: 0;
right: 0;
margin: auto;
}
}
@content의 역할
@mixin을 통해서 left-top을 재활용하고 있다.
box 클래스에서도 left-top을 재활용하고 있는데, 이때 중괄호를 열어서 추가로 코드를 작성해 주었다.
재활용 코드에 내용을 추가적으로 넣을 수 있도록 도와주는 것이 @content 키워드이다.
재활용하고 있는 코드 내부에 @content 키워드를 작성해주면 해당 코드를 재활용하고 있는 곳에서 중괄호를 열어 추가적으로 코드를 작성할 수 있게 해준다.
즉, 중괄호를 열어서 새롭게 작성한 코드가 @content 안으로 들어간 것이라고 보면 된다.
.container {
width: 100px;
height: 100px;
position: absolute;
top: 0;
left: 0;
}
.box {
width: 200px;
height: 300px;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
}
Comments