Be ready to study forever - 개발자 꿈나무

[CSS기초] 11. CSS /display: flex; - 수직과 수평정렬 본문

Programming/CSS

[CSS기초] 11. CSS /display: flex; - 수직과 수평정렬

루눌룹 2020. 7. 19. 18:33

11. CSS/ flex수직과 수평정렬

flex는 요소의 크기가 불분명하거나 동적인 경우에도 각 요소를 정렬할 수 있는 효율적인 방법이다. flex2개의 개념으로 나뉜다.

l  container – display, flex-flow, justify-content 등의 속성을 사용

l  items – order, flex, align-self 의 속성을 사용

containeritems를 감싸는 부모요소이며 각 item을 정렬하기 위해선 container가 필수적이다. 주의할 부분은 containeritems에 적용하는 속성이 구분되어 있다는것이다.

11.1.1. flex container속성

속성

의미

display                                   

flex container를 정의

flex-flow

flex-direction flex-wrap의 단축속성

flex-direction

flex-items의 주축(main-axis)를 설정

flex-wrap

flex-items의 여러줄 묶음 설정

justify-content

주축의 정렬방법을 설정

align-content

교차축의 정렬방법을 설정

align-items

교차축의 item정렬방법을 설정

 

ex) .container { display : flex; }

컨테이너 자체는 블록요소처럼 활용/ item은 인라인요소처럼 사용

ex) .container{display : inline-flex; }

컨테이너, 아이템 모두 인라인요소처럼 활용됨

11.1.2. flex-flow단축속성으로 flex-item, 의 주축(main-axis)을 설정하고 items의 여러 줄 묶음(줄 바꿈)도 설정한다.

예제 flex-flow : 주축 여러줄-묶음;

.container {

    flex-flow : row-reverse wrap;

}

flex-flow의 개별속성

의미

기본값

flex-direction

items의 주축(manin-axis)을 설정

row

flex-wrap

items의 여러줄 묶음을 설정

nowrap

 

11.1.3. flex-direction – items의 주축(main-axis)를 설정한다.

의미

기본값

row

items을 수평축으로 표신

row

row-reverse

itemsrow의 반대축으로 표시

 

column

items을 수직축으로 표시

 

column-reverse

itemscloumn의 반대축으로 표시

 

11.1.4. 주 축(main-axis) 와 교차축(cross-axis)

11.1.5. 시작점(flex-start) 과 끝점(flex-end)

11.1.6. flex-wrap - items의 줄묶음

의미

기본값

nowrap

모든 items를 여러 줄로 묶지않음 (한줄에 표시)

nowrap

wrap

items를 여러줄로 묶음

 

wrap-reverse

itemswrap의 역방향으로 여러줄로 묶음

 

ex) .container { flex-wrap : wrap; }

*기본적으로 items는 한줄에서만 표시되고 줄바꿈이 되지 않는다. 지정된 크기(width, height)를 무시하고 한줄 안에서만 가변한다. items를 줄바꿈하려면 값을 wrap으로 적용해야한다.

11.1.7. justify-content주 축의 정렬방법을 설정한다

의미

기본값

flex-start

items를 시작점 으로설정

flex-start

flex-end

items를 끝점으로 정렬

 

center

items를 가운데로 정렬

 

space-between

시작item은 시작점에 마지막 item은 끝점에 정렬되고 나머지 items는 사이에 고르게 정렬됨

 

space-around

items를 균등한 여백을 포함하여 정렬

 

11.1.8. align-content교차축의 정렬방법을 설정

*flex-wrap 속성으로 items가 여러줄이고 여백이 있을경우에만 사용가능/ items가 한 줄일 경우 align-content 대신에 align-item를 사용

의미

기본값

stretch

container의 교차축을 채우기 위해 items를 늘림

stretch

flex-start

items를 시작점 으로설정

 

flex-end

items를 끝점으로 정렬

 

center

items를 가운데로 정렬

 

space-between

시작item은 시작점에 마지막 item은 끝점에 정렬되고 나머지 items는 사이에 고르게 정렬됨

 

space-around

items를 균등한 여백을 포함하여 정렬

 

11.1.9 align-items 교차축에서 item의 정렬방법을 설정한다.

*item이 한줄일 경우 많이 사용한다.

*주의할 점은 itemsflex-wrap을 통해 2줄이상일 경우에는 align-content속성이 우선발동한다. 따라서 align-items를 사용하려면 align-content의 속성을 기본값으로 설정해야한다.

의미

기본값

stretch

container의 교차축을 채우기 위해 items를 늘림

stretch

flex-start

items를 시작점 으로설정

 

flex-end

items를 끝점으로 정렬

 

center

items를 가운데로 정렬

 

baseline

items를 문자 기준선에 정렬

 

11.2. flex Item속성

속성

의미

order

flex item의 순서를 설정

flex

flex-grow, flex-shrink, flex-basis의 단축속성

flex-grow

flex item의 증가 너비 비율을 설정

flex-shrink

flex item의 감소 너비 비율을 설정

flex-basis

flex item의 기본 너비 설정

align-self

교차축에서 아이템의 정렬방법을 설정


11.2.1 order – item
의 순서를 설정, item의 숫자를 지정하고 숫자가 작을수록 우선순위

의미

기본값

숫자

item의 순서를 설정

0

ex) .item { order : 1; }

11.2.2. flex-grow – item의 증가 너비 비율을 설정, 숫자가 크면 더 많은 너비를 가진다. item이 가변너비가 아니거나 값이 0일경우 효과 X

의미

기본값

숫자

item의 증가 너비 비율을 설정

0

ex) .item { flex-grow : 1; }

11.2.3. flex-shrink – item이 감소하는 너비의 비율을 설정, 숫자가 크다면 더 많은 너비가 감소한다. item이 가변너비가 이니거나 값이 0일경우 무효함

의미

기본값

숫자

item의 감소 너비 비율을 설정

0

ex) .item { flex-grow : 1; }

11.2.4. flex-basis - item기본 너비를 설정, 값이 auto인경우 width, height 등의 속성으로 item의 너비를 설정가능하다. 하지만 단위 값이 주어일 경우 설정을 할 수 없다.

의미

기본값

auto

가변 item과 같은 너비

auto

단위

px,em,cm 등 단위로 지정

 

ex) .item { flex-basis : 200px; }

11.2.5. flex – flex-grow, flex-shrink, flex-basis의 단축속성

의미

기본값

flex-grow

item의 증가 너비 비율 설정

0

flex-shrink

item의 감소 너비 비율 설정

1

flex-basis

item의 기본너비 설정(분배전)

auto

ex) flex : 증가너비 감소너비 기본너비;

 

11.2.6. align-self교차축에서 개별 item의 정렬 방법을 설정한다.

*align-itemscontainer내의 모든 items의 정렬 방법을 설정한다. 필요에 의해서 일부 item만 정렬 방법을 변경 하려고 할 경우 align-selfㄹ를 사용하여 개별item의 정렬을 부여한다. align-selfalign-items보다 우선한다.

의미

기본값

auto

containeralign-items 속성을 상속받음

auto

stretch

container의 겨차 축을 채우기 위해 item을 늘림

 

flex-start

item을 각 줄의 시작점으로 정렬

 

flex-end

item을 각 줄의 끝점으로 정렬

 

center

item을 가운데로 정렬

 

baseline

item을 글자 기준선으로 정렬

 

References: heropy.blog

'Programming > CSS' 카테고리의 다른 글

[Sass 문법 정리]1. Sass란?  (0) 2020.07.22
[CSS기초] 12. CSS grid  (0) 2020.07.19
[CSS기초] 10. CSS 애니메이션(속성)  (0) 2020.07.19
[CSS기초] 9. CSS 전환/변환  (0) 2020.07.19
[CSS기초] 8. CSS속성/배경  (0) 2020.07.19
Comments