기주

CSS - flex 본문

프로그래밍언어/html & css

CSS - flex

기주그지마 2023. 9. 14. 14:53

CSS  - display : flex;

 

 

ㄴ 정의 : display : flex는 자식요소들의 정렬을 위해 사용한다

 

ㄴ 자식요소들이 inline인지 block인지에 상관없이 레이아웃 설정가능

 

ㄴ 부모에게 길이를 주고 자식들은 flex를 주어 정렬하는 방법을 많이 쓴

 

 

 

 

-       flex container (부모) 속성 : flex-direction, flex-wrap, justify-content, align-items, align-center

-       flex item (자식) 속성 : flex, flex-grow, flex-shrink, flex-basis, order

 

 

 

 

 

 

 

 



<부모>
     <div 자식1>
     <div 자식2>
</부모>


와 같은 상황에서 세로로 정렬을 하고 싶다면

flex를 이용한다

display:flex 를 이용하면 자식들이 세로로 정렬된다

여기서 자식1과 자식2의 길이를 조절하고 싶다면 

flex-basis를 이용한다 (width를 이용할 수도 있지만 위 방법이 더 좋다)


자식1{
flex-basis:100px;
}


자식2{
flex-basis:200px;
}



flex-basis를 정하면 자식 태그들이 쌓이는 방향(메인축 방향)으로 길이 지정

즉, 기본값이 flex-direction: row; (메인축: 행 , 수직축: 열) 로 되어있으므로 자식들의 width 를 정한다

(flex-direction: columns; (메인축: 열 , 수직축: 행) 로 지정하면 flex-basis는 자식들의 height 지정)


flex-direction이 기본 값일때 자식들의 width는 내용물의 길이만큼, height는 부모의 것을 따라간다


자식들의 height는 부모의 height를 그대로 채운다





flex-direction: row;

-> 하나의 행에 자식들을 수평으로 배치한다

 

ㄴ 행 방향으로 자식들을 쌓아가기



flex-direction: columns;

-> 하나의 열에 자식들을 수직으로 배치한다

 

ㄴ 열 방향으로 쌓아가기



justify-content

: 자식들의 배열 방법, 메인축 정렬, 메인축 방향으로는 기본값으로 content의 내용만큼만 차지한다

ㄴ 기본값: justify-content: start;

 

ㄴ end, center, space-between 등으로 지정


align-items

: 자식들의 배열 방법, 수직축 정렬, 수직축 방향으로는 기본값으로 부모값을 100% 차지한다,

ㄴ기본값: align-items: stretch;

 

ㄴ start, end, center 등으로 지정




flex-basis

: 주축방향으로 길이 지정, 기본 크기를 지정한다

 

ㄴflex-basis는 min-width 와 비슷한 개념이다 (최소값)

 

ㄴ 그래서 최소값과 비슷한의미로 flex-basis를 정해놓고, flex-grow로 길이를 더 늘려놓는


flex-grow 

: 남는 여백을 분배하는 방식을 정한다 

ㄴflex-grow : 0이면 여백이 남아도 그대로 유지

ㄴflex-grow : 1 부터는 그 숫자 비율만큼 여백을 가져간다 


flex-shrink

:  부족한 여백을 어떻게 각출할 것인지를 지정한다.

ㄴ flex-shink:0으로 정하면 여백이 부족해져도 그대로 유지

ㄴ flex-shrink:1 부터는 그 숫자 비율만큼 감소



flex-wrap

: 화면이 부족해질때 줄바꿈을 하는 방법

ㄴ 메인축 방향으로 화면이 부족해지면 수직축방향으로 축이 하나 더 생성된다

ㄴ flex-wrap: 줄바꿈 O

ㄴ flex- wrap: 줄바꿈 X

 

 

 

 

 

 

 

여백 만들기

 

- gap과 margin의 차이

 

gap

 

ㄴgap은 레이아웃 요소들 사이의 간격을 의미

 

ㄴgap: 50px 20px;

 

는 레이아웃 요소들 사이 상하간격은 50px, 좌우간격은 20px를 의미한다

 

 

margin

 

ㄴ 개별 요소간의 외부 여

'프로그래밍언어 > html & css' 카테고리의 다른 글

CSS-transition  (0) 2023.09.27
css - transform 변형하기  (0) 2023.09.16
css-position  (0) 2023.09.15
CSS - 버튼위에 아이콘 올리기  (0) 2023.09.14
CSS  (0) 2023.09.03