인덱스 시그니처(Index Signature)
: 대괄호로 객체 접근 방법type humanInfo = {
[name: string]: number
}
type humanInfo = Record<string, number>
인덱스 시그니처
가 name
이라는 key
의 의도를 명확히 알려줘 구문 관점에서 더 좋다.
인덱스 시그니처
는 key
로 문자열을 사용하지 못하지만 Record Type
은 가능하다.
type names = '사람' | '고기' | '식물'
type humanInfo = Record<names, number>
flex
속성// flex : flex-grow flex-shrink flex-basis
#main div {
-webkit-flex: 1; /* Safari 6.1+ */
-ms-flex: 1; /* IE 10 */
flex: 1;
}
flex-grow
: flexible item들이 차지할 너비들에 대한 증가형 숫자를 지정flex-shrink
: flexible item들이 차지할 너비들에 대한 감소형 숫자를 지정flex-basis
: item의 길이를 지정auto
: 1 1 auto
와 같다.initial
: 0 1 auto
와 같다.none
: 0 0 auto
와 같다.inherit
: 부모 요소로부터 값을 상속 받는다..grid {
display: grid;
grid-template-columns: auto 100px 1fr 2fr;
}
grid-template-columns: repeat(3, 1fr 2fr); /* 1fr 2fr 1fr 2fr 1fr 2fr */
grid-template-rows: repeat(2, minmax(20px, auto));
grid-template-columns: 200px 200px 500px;
// 3개의 열이 200px, 200px, 500px로 나뉜다.
grid-template-rows: repeat(3, 1fr)
// 3개의 행이 1fr, 1fr, 1fr로 나뉜다.
// 20%이므로 한 행에 5개의 item이 들어간다.
// 만얄 공간이 남으면 남은자리는 비원둔다.
// |[ ][ ][ ][ ] |
.container {
grid-template-columns: repeat(auto-fill, minmax(20%, auto));
}
auto-fill
예제에서 남은 자리를 item들이 채운다..item:nth-child(1) {
grid-column: 1 / 3; // 첫번째 요소는 1번 부터 3칸을 차지함.
grid-row: 1 / 2; // 2칸 차지
}
justify-items
: 아이템들을 가로축 정렬align-items
: 아이템들을 세로축 정렬참고
https://studiomeal.com/archives/533
https://developer-talk.tistory.com/296
https://webdir.tistory.com/349 [WEBDIR]