본문 바로가기

CSS

flex box

flex box

플렉스박스 레이아웃 모듈은 우리가 원하는 순서나 방향에 따라 플렉스 항목들이 나타나게 할 수 있고 실제 마크업된 순서와 상관없이 별개로 동작하기 때문에 접근성에 제약을 받지 않는다는 점입니다. 또한 플렉스 박스 모듈은 정렬을 제어하는 능력을 가지고 있습니다.

div {
    display: flex;             /* NEW, Spec - Opera 12.1, Firefox 20+ */
    display: -webkit-box;      /* OLD - iOS 6-, Safari 3.1-6 */
    display: -moz-box;         /* OLD - Firefox 19- (buggy but mostly works) */
    display: -ms-flexbox;      /* TWEENER - IE 10 */
    display: -webkit-flex;     /* NEW - Chrome */
}

 

속성

 

flex-direction

방향, 흐름, 시각적인 순서처리이며, 항목들이 어느 쪽으로 배열이 되어야 하는지 제어하는 속성

  • row : 왼쪽에서 오른쪽 나열 (기본값)
  • row-reverse : 오른쪽에서 왼쪽 나열
  • column : 수직으로 왼쪽에서 아래쪽 나열
  • column-reverse : 수직으로 아래쪽에서 위쪽 나열
div {
    display: flex;
    flex-direction : row;
}

 

 

flex-wrap

항목들이 열을 바꾸는 방법을 제어하는 속성

  • nowrap : 항목들이 wrap이 되지 않도록 지정 (기본값)
  • wrap : 열 바꿈
  • wrap-reverse : 열 바꿈이 반대로 나열
  • initial : 디폴트 값 속성 설정
  • inherit : 부모 요소로 값 상속
div {
    display: flex; 
    flex-wrap: wrap;
}

 

 


flex-flow

flex-direction과 flex-wrap 값을 명시하는 단축 속성입니다.
두 개의 매개변수 순서에 상관없이 지정할 수 있으며, 하나를 생략하는 것도 가능

div {
    display : flex;
    flex-flow : column wprap;
}

 

 

요소들의 너비 조정 속성값

하나의 플렉스 항목이 자신의 컨테이너가 차지하는 공간에 맞추기 위해 크기를 키우거나 줄이는 방법을 설정하는 속성입니다.

 

  • flex-grow : 증가형 숫자 지정, 정수값 (기본값 0)
  • flex-shrink : 요소의 크기가 부모보다 클 때 사용, 정수값(기본값 1)
  • flex-basis : 요소의 초기크기 지정 (기본값 1)

 

flex-grow

양수 정수값을 수용하고 이 값은 남는 공간 중 얼마를 지정된 플렉스 항목에 분배해야 하는지 그 정도를 제어합니다.

  • number : 증가시킬 값
  • initial : 기본값
  • inherit : 부모요소 값 상속
div .item1 {
    flex-grow: 5;
}

 

 

flex-shrink

양수 정수값을 수용하고 이 값은 남는 공간 중 얼마를 지정된 플렉스 항목에 분배해야 하는지 그 정도를 제어합니다.

  • number : 감소시킬 값
  • initial : 기본값
  • inherit : 부모요소 값 상속
div .item2 {
    flex-shrink: 3;
}

 

 


flex-basis

모자라는 공간을 회수할 때 해당 플렉스 항목이 플렉스 컨테이너상의 다른 항목들에 비해 얼마나 줄어들지를 결정합니다.

  • number : 플렉스 항목의 기본값을 px,pt 등의 길이 단위 또는 %(퍼센테이지)로 지정할 수 있습니다.
  • auto : 기본값으로, 길이는 플렉스 항목(flexible item) 길이와 같습니다.
  • initial : 기본값
  • inherit : 부모요소 값 상속
div .item3 {
    flex-basis: 40px;
}

 

 

 

요소의 배치와 높이조정 속성값

order

항목의 현재 요소의 배치 순서를 지정합니다.

  • number : 항목의 순서 지정 (기본값 0)
  • initial : 기본값
  • inherit : 부모요소 값 상속
div .item3 {
    order: 3;
}

 

 


justify-content

수평 정렬을 처리하는 속성이며, 수직으로 쓰는 방식을 사용하거나 flex-direction 값이 column 일 경우는 제외된다.

  • space-between : 첫번째 항목은 왼쪽 끝, 마지막 항목은 오른쪽 끝 졍렬. 다른 항목은 그 사이 남는 공간 일정한 간격 분배 배열
  • space-around : 일정한 간격 분배 배열
  • flex-start : 왼쪽으로 정렬 (기본값)
  • flex-end : 오른쪽 정렬
  • center : 중앙 정렬
  • initial : 기본값
  • inhertit : 부모요소 값 상속
div {
   display: flex; 
   justify-content: space-around;
}

 

 

align-items

항목의 정렬을 각각의 항목들과 연관시켜 제어, 항목 중 가장 높이가 큰 기준으로 낮춰서 높이 조정

  • stretch : 모든 항목들이 서로 높이값이 동일 하도록 조정 (기본값)
  • flex-start : 항목들을 왼쪽에 위치, 각 항목의 높이는 각 항목의 콘텐츠 양에 따라 결정
  • flex-end : 항목을 아래쪽 배치, 각 항목의 높이는 각 항목의 콘텐츠 양에 따라 결정
  • center : 중앙정렬, 각 항목의 위 아래 잔여 공간을 동일하게 분배
  • baseline : 모든 하목을 콘텐츠에 지정된 기준선 중심으로 정렬
  • initial : 기본값
  • inhertit : 부모요소 값 상속
div {
   display: flex; 
   align-items: center;
}

 

 

align-self

각 항목에 적용하고 제어하는 속성 개별적으로 적용

  • stretch : 모든 항목들이 서로 높이값이 동일하도록 조정 (기본값)
  • flex-start : 항목들을 왼쪽에 위치, 각 항목의 높이는 각 항목의 콘텐츠 양에 따라 결정
  • flex-end : 항목을 아래쪽 배치, 각 항목의 높이는 각 항목의 콘텐츠 양에 따라 결정
  • baseline : 모든 하목을 콘텐츠에 지정된 기준선 중심으로 정렬
  • initial : 기본값
  • inhertit : 부모요소 값 상속
div .item3 {
   align-self: center;
}

 

 

 

align-content

여러 열의 컨테이너들이 정렬하는 것을 제어하는 속성

  • stretch : 컨테이너 높이와 동일하도록 항목들도 높이 조정 (기본값)
  • center : 열들의 위와 아래로 동일하게 공간 분포, 수직 방향 기준으로 중앙 정렬된 상태
  • flex-start : 컨테이너 위쪽 열 정렬, 여유 공간은 이 열들의 아래쪽 표시
  • flex-end : 컨테이너 바닥으로 정렬, 여유공간은 열들의 위쪽으로 표시
  • space-between : 맨 위쪽으로 첫 번째 줄 배치, 나머지는 바닥에 배치. 그 외의 열들은 그 사이에서 동일한 간격을 두고 정space-around : 남는 공간의 일부가 첫 번째 줄 위와 마지막 줄의 밑에 분포. 첫 번째 줄과 마지막 줄이 컨테이너의 맨 위와 아래쪽 끝으로 정렬하지 않음
div {
    align-content: center;
}
div .item {
    width: 50px;
    height : 50px;
}

'CSS' 카테고리의 다른 글

텍스트 처리  (0) 2020.07.23
grid  (0) 2020.07.23
web font  (0) 2020.07.22
animation  (0) 2020.07.22
calc()  (0) 2020.07.21