-
기본구조
flex는 container 와 item 의 두가지 요소로 구성된다.
<div class="container"> <div class="item">...</div> <div class="item">...</div> <div class="item">...</div> </div>
기본사용
display:flex;
※ display:inline-flex; 는 인라인레밸의 컨테이너가 생성됨, 이렇게 적용하면 컨테이너의 정렬이 가로로 정렬된다.
※ display:flex; 자식요소들이 flex item의 성격을 갖게 된다.
flex container 주요속성
justify-content
flex-start //기본값입니다. 좌측정렬 flex-end //우측정렬 center //가운데정렬 space-between //아이템과 아이템사이의 일정한 간격 space-around //아이템의 앞뒤로 일정한 간격을 space-evenly //아이템 외의 남는공간을 아이템 사이에 일정하게 배분
justify-content
nowrap //줄바꿈하지 않고 컨터이너를 벗어남 wrap //줄바꿈 wrap-reverse // 위로줄바꿈
flex-direction
row //가로방향으로 정렬 column //세로방향으로 정렬 row-reverse //가로로 정렬하되 역순으로 column-reverse //세로로 정렬하되 역순으로 정렬
flex-flow
flex-flow: flex-direction flex-wrap
flex-flow : row wrap //flex-direction의 row속성과 flex-wrap의 wrap
flex item 주요속성
flex-direction: row; //가로로 flex-basis: auto; // 공간배분전 기본넓이 설정, 컨테이너 너비만큼 줄어듬, width 보다 우선함 flex-wrap; nowrap; // 줄넘김을 하지 않음 flex-grow; 0; // 여백을 채우려 늘이지 않음, 증가너비 비율, 크면 더 많은 너비가 늘어남 flex-shrink:1 ; // 너비가 좁아지면 같이 줄어듬, 감소너비 비율, 크면 더 많은 너비가 줄어듬
flex : 증가너비 감소너비 기본너비;
단축속성으로 사용할 수 있다.
flex-grow를 제외한 개별속성은 생략이 가능하다. flex-grow를 제외한 값은 생략이 가능하므로
flex 1; = flex-grow:1; 과 같다.
이는 다른말로 바꾸면 flex 1; 은 flex-grow:1; 과 flex-shrink:1 과 flex-basis:auto; 와 같다.
하지만, 유의할점은 flex 1: 일때 flex-basis 는 '0' 이된다. (flex 구문에서 예외적용)
바로 사용가능한 간편한 사용예
.parent { display: flex; } .child1 { flex: 2; } .child2 { flex: 1; }
이경우에 child1 는 child2의 두배의 넓이를 가지게 된다.
(flex-grow 가 2:1이기 때문, 그냥 flex:1 을 주면 같은 넓이가된다)
FLEX의 한계
IE 10부터 지원하기 때문에 -ms- 와 같은 prefix가 필요하다. ( -ms- 와 다른 값도 넣어주면 좋음)
display:-webkit-flex; display:-moz-flex; display:-ms-flex; display:-o-flex;
'工夫 > HTML+CSS' 카테고리의 다른 글
[HTML] 카카오톡 URL 공유시 미리보기 메타태그작성 (0) 2022.02.06 [CSS] :nth-child() 의 다양한 용례 (0) 2021.05.19 [HTML] 크롬 자동번역창을 띄우지 않기 (0) 2021.05.12 [CSS] 모바일에서 뷰포트에 따른 폰트 사이즈 자동 조정 방지 (0) 2021.05.12 [CSS] 모바일에서 표만 가로스크롤 주기 (0) 2021.04.29 댓글