💡항상 display:flex;를 적용해줘야 한다.
#flex{ display:flex; justify-content:flex-end; /*오른쪽으로*/ align-items:flex-end; /*아래로*/ flex-direction:row-reverse; /*반대방향*/ flex-wrap:wrap /*여러줄/실제크기 정렬*/ flex-flow:row wrap; /*정방향+여러줄정렬*/ align-content:flex-start; /*여러줄 위로*/ } .yellow { order:1; /*1의 위치(뒤)로 이동*/ align-self:flex-end; /*yellow아이템만 아래로 이동*/ }
축이 중요! 방향 중요X
column이면 justify가 상하 (축이 변함)
default값은 0 0 0 (애초에 순서가 없음)
앞으로 가는건 음수 order:-n, 뒤로 가는 건 양수 order:n
여러개의 아이템이 있어도 모두 0이기때문에, 한가지에만 -1을 매겨준다면 맨 앞으로 간다
align-self:flex-end; 각각을 상하축으로 이동
flex-direction과 flex-wrap이 자주 같이 사용되기 때문에, flex로 한번에 속성 적용 가능
flex-flow : direction wrap 순서로 사용한다
(ex)flex-flow:row wrap;
2에 해당하는 요소는 기본width이상으로 늘어남
.box:nth-child(2) { flex-grow: 1; }
늘어나는 비율 각각 설정
1:2의 비율로 늘어남.box:nth-child(2) { flex-grow: 1; } .box:nth-child(3) { flex-grow: 2; }
2에 해당하는 요소는 줄어드는 비율이 다른 요소의 2배
.box:nth-child(2) { flex-shrink: 2; }
flex-grow, flex-shrink로 늘어나거나 줄어들기 전 기본 크기를 설정함
flex-direction:row;기준 basis는 너비(가로), column은 높이(세로)
flex: grow shrink basis 순으로 작성한 축약 형태로 사용한다.
grow=1, shrink=1, 기본크기=50%
- 50%를 기본값으로 50%가 넘으면 1:1비율로 늘어나거나 수축
.box{ flex 1 1 50% }
grow=1, shrink=1, 기본크기=auto(50px)
.box{ width:50px flex 1 1 auto }
1:1비율로 늘어나는 것
.box{ flex:1; }
- flex: 내부 콘텐츠(텍스트 등)가 있다면, 고정된 위치에서 고정된 상태로 요소가 존재한다(브라우저 크기에 좌우되지 않는다)
.box{ flex-grow:1; }
- grow: 내부 콘텐츠(텍스트 등)가 있다면, 브라우저 크기에 영향을 받는다(유동적으로 움직임)
✔️flex
- display:flex;
- justify-content:
- align-content:
- align-itmes:
- flex-wrap:
- flex-derection:
- flex-grow:n;
- flex-shrink:n;
- flex-basis:npx/n%;
- flex:grow shrink basis;