• static
    ⇒  기본값, html 에 정의된 순서대로 자연스럽게 보여지는것! 설정안하면 가장 기본값으로 되어 있음

 

  • relative
    ⇒ 원래 있던 자리(static)를 기준으로 top bottom left right를 조정해서 설정함!!

 

  • absolute
    ⇒ 부모 박스를 기준으로 정렬되는것! 

 

  • fixed
    ⇒ 웹 페이지를 기준으로 정렬되는것

 

  • sticky
    ⇒ 원래의 자리에 위치하나, 스크롤링 되어도 고정되어 있는것!
flex 와 grid 가 등장하기 이전, float 을 사용하여 html 내의 요소들을 배치 했다.
하지만 flex 가 등장하며 float 은 더이상 사용되지 않는다! ( 호환성때문에 아직 사용되긴 하지만.. 왠만하면 flex를 사용함 )
그래서 우리는 flex 가 무엇인지 알아보려고 한다!

 

Flexbox의 구성

Flexbox 는 container 와 item 으로 구성되며, container 와 item 에 각각의 속성을 적용할수 있다!

예제를 통해 각각의 속성을 알아보자!

 

container 의 속성

  • display
    display: flex;​
     flexbox 임을 명시하는 속성!

  • flex-direction

    flexbox의 중심축을 정의
    /* 수평 정렬 (오르쪽 기준) */
    flex-direction : row;
    
    /* 수평 정렬 (왼쪽 기준) */
    flex-direction : row-reverse;
    
    /* 수직 정렬 (상단 기준) */
    flex-direction : column;
    
    /* 수직 정렬 (하단 기준) */
    flex-direction : column-reverse;​

 

  • flex-wrap

    window 크기에 따라 아이템의 배치를 아래로 내릴것인지, 동일 비율로 줄어들거나 늘어트려 보여줄것인지 정의
    /* 기본값 => 화면 비율과 상관없이 한줄에 적정 크기대로 조절되어 나타남 */
    flex-wrap: nowrap;
    
    /* 화면이 줄어들면 item 크기이상으로 안늘어나고, 다음줄로 아이템 보여줌  */
    flex-wrap: wrap;
    
    /* 아래서 위로 정렬! */
    flex-wrap: wrap-reverse;

 

  • flex-flow

    direction 과 wrap을 한줄로 나타내고자 할때 사용!
    flex-flow: column wrap;
    /* direction은 column으로, wrap은 wrap 으로 설정 */​

 

  • justify-content

    중심축(flex-direction 값)에서 item 들을 어떻게 배치할 것인지 결정
    justify-content: flex-start;
    /* 기본값으로, 오른쪽에서 왼쪽, 위에서 아래로 배치하는 일반적인 방법 */
    
    justify-content: fles-end;
    /* 왼쪽에서 오른쪽, 아래서 위로 배치 (순서는 유지하면서 배치만 다르게!) */
    
    justify-content: center;
    /* 가운데로 배치 */
    
    justify-content: space-around;
    /* item 별 스페이스로 구분하려 정렬 (아이템별 양쪽에 각각 스페이스) */
    
    justify-content: space-evenly;
    /* item 별 처음 끝 상관없이 똑같은 간격으로 정렬 */
    
    justify-content: space-between;
    /* 왼쪽 오른쪽엔 빈곤강 없이 중간에만 스페이스 */​

 

  • align-items

    반대축에서 item들을 어떻게 배치 할 것인지 결정 ( item들을 하나로 묶어서! )
    align-items: baseline;
    /* item 크기가 달라지면, 다른 아이템들도 같이 정렬하는것! ( item 내부의 요소를 같은 라인으로 ) */ 
    
    /* 이 외에는 justify-content 속성과 같음 */​

 

  • align-content

    반대축에서 각 item 마다 어떻게 배치하여 적용 할 것 인지 결정 ( item 개별마다! )

 

 

item 의 속성

  • order
    • item 마다 순서번호를 지정하여 순서를 배치하는것!
    • order: 순서;
  • flex-grow
    • 컨테이너가 늘어나면 각 아이템도 같이 늘어남!
    • flex-grow: 비율; 다른 아이템들에 비해 해당 비율로 늘어남!!
  • flex-shrink
    • 컨테이너가 작아질때 줄어드는 비율을 표시
    • flex-shrink: 비율; 다른 아이템들에 비해 해당 비율로 더 줄어듦
  • flex-basis
    • 아이템들이 공간을 얼마나 차지해야 하는지 지정하는것
    • flex-basis: 비율 %; ⇒ 해당 %로 아이템의 크기를 배치\
  • flex
    • grow / shrink / basis 를 한번에 작성!
    • flex: 1 1 60%;
  • align-self
    • 아이템 별로 아이템을 정렬
    • justify-content 와 같음

 

실습을 보기 좋게 하기 위해서는

https://jsbin.com/?html,output 

 

JS Bin

Sample of the bin:

jsbin.com

에서 직접 해보도록 하자!

+ Recent posts