** block이 아닌 종류를 기억하는 것이 훨씬 편하다.
- 박스를 어느 곳에든 둘 수 있다. `display: flex`
- 지켜야할 규칙이 세개 있다.
1. 자식 요소에 명시하지 않고 직접적인 부모 요소에만 명시해야 한다.
자식들을 움직이려면 부모를 `display: flex`로 만든다.(부모 = flex container)
이렇게 지정한 후에 주축, 교차축 적용 배치가 가능함
2. 주축(main axis, 디폴트로 세로방향, 부모 요소에 적용)
속성 justify-content
: center, flex-end, flex-start(기본값), space-between 등 사용해 배치한다. 주축에 적용.
3. 교차축(cross axis, 디폴트로 세로방향)
속성 align-items
: center, stretch, 등 사용. 교차축에 적용.
** height: 100vh; -------> vh
단위: viewport(=screen) height, 100vh = 화면 높이의 100% 의미. 화면 크기에 따라 높이가 바뀐다.
** 자식요소도 flex container가 될 수 있다.
flexbox 속성
- flex-direction : 메인 축을 설정하는 속성
flex-direction: column
일 경우 메인 축(justify-content)이 세로, 교차 축(align-items)이 가로를 의미
(row: 디폴트값, 메인축(justify-content)이 가로방향, column-reverse: 밑에서 시작해서 위로 올라감 등)flex-wrap
: flex의 하위 요소들이 flex를 선언한 영역을 벗어날 경우, 강제로 한 줄로 배치할 지 행을 나눠서 배치할 지 결정하는 속성.
flex-wrap: wrap 을 선언한다면, flex를 선언한 영역을 벗어날 경우 행을 나눠서 배치. 명시된 사이즈를 반영함.
flex-wrap: nowrap(초기 사이즈를 신경쓰지 않고 강제로 한 줄로 배치), wrap-reverse 등
position 속성
position
: 위치를 이동시키고 싶을 때 사용.
fixed(초기 위치 고정),
static(처음 위치하는 곳에 두는 것, 디폴트),
relative(요소가 처음 위치한 자리를 기준으로 상하좌우로 옮길 수 있다.),
absolute(가장 가까운 relative 부모를 기준으로 이동. 부모를 relative하게 만들어야 한다. 없으면 body를 기준으로 함)
** positon: fixed일 때 top, left, right, bottom 중 하나라도 설정하게 되면 요소는 다른 레이어에 위치(가장 위에 위치)하게 된다.