아랄라랄라
R 스토리
아랄라랄라
전체 방문자
오늘
어제
  • All (198)
    • Web (145)
      • Markup | WEB (9)
      • Styles (45)
      • javascript (32)
      • jquery (28)
      • vue (16)
      • react (10)
      • more (5)
    • IT (31)
      • CS (3)
      • git hub (5)
      • UI | UX (18)
      • more (5)
    • ETC (22)
      • 이슈노트 (12)
      • 스터디 (10)
      • 아랄라 ☞☜ (0)
      • JOB🛠 (0)

인기 글

반응형
hELLO · Designed By 정상우.
아랄라랄라

R 스토리

Web/Styles

[CSS] display:flex

2018. 5. 17. 15:00

1. 플렉서블 박스 = 부모 박스

- 부모 박스에 플렉서블 박스에서 새로 생긴 특정 속성값을 적용해야 가변적인 박스로 작동


2. 플렉서블 박스의 자식 박스 = 플렉스 아이템

- 자식 박스가 속성값에 의해 작동하는 순간부터 플렉스 아이템이라 부른다


3. 플렉서블 박스의 축 - 주축과 교차축

- 주축 =  중심이 되는 축

- 주축이 가로 -> 왼쪽에서 오른쪽으로 배치

- 주축이 세로 -> 위에서 아래로 배치

- 축의 방향 

- 축의 시작과 끝이 존재하는 이유는 플렉스 아이쳄이 처음 배치되는 위치(시작점)와 플렉스 아이템이 마지막에 배치될 위치(끝점)가 필요하기 때문


( 속성 값은 플렉서블 박스에 적용한다. )



※ 익스플로러 11 이상에서 작동. 안드로이드 4.4이상에서 자동

※ 플렉서블 박스는 브라우저 접두사를 사용해야 한다.








★ 기본 설정 (플렉서블 박스)


display : flex (박스를 블록 수준의 플렉서블 박스로 작동)

display : inline-flex (박스를 인라인 수준의 플렉서블 박스로 작동)








★ 플렉스 아이템의 배치 방향 설정


flex-direction : row (기본값) / row-reverse / column / column-reverse


  1.  row : 박스를 왼쪽에서 오른쪽으로 배치. 주축은 가로가 됨

  2.  row-reverse : 박스를 가로로 배치하되 역방향으로 배치

  3.  column : 박스를 위에서 아래로 배치. 주축은 세로가 됨

  4.  column-reverse : 박스를 세로로 배치하되 역방향으로 배치








★ 플렉스 아이템을 여러 줄로 배치하기


flex-wrap : nowrap(기본값) / wrap / wrap-reverse


  1.  nowrap : 박스를 한 줄로 배치하며, 기본값

  2.  wrap : 박스를 여러줄로 배치

  3.  wrap-reverse : 박스를 여러 줄로 배치하되 역방향으로 배치








★ 플렉스 아이템의 배치 방향과 여러 줄 배치를 한 번에 설정하기


flex-flow : [flex-direction] [flex-wrap] / row nowrap(기본값)

  

  1. 첫 번째 속성값은 박스의 배치 방향을 설정하는 속성의 값을 작성하고, 
  2. 두 번재 속성값은 박스를 여러 줄로 배치하는 속성의 값을 작성 두 속성값 사이는 반드시 한 칸을 띄어야 한다. 



https://jsfiddle.net/Kimara/1g42yh84/6/








★ 주축 방향으로 다양하게 플렉스 아이템 배치하기(가로)


 justify-content : flex-start(기본값) / flex-end / center / space-between / space-around


  1.  flex-start : 자식 박스를 부모 박스 주축의 시작점으로 배치. 기본 값
  2.  flex-end : 바식 박스를 부모 박스 주축의 끝점으로 배치
  3.  center : 자식 박스를 부모 박스의 중앙으로 배치
  4.  space-between : 플렉서블 박스에 빈 공간이 있을 때 사용. 첫 번째 박스와 마지막 박스는 처음과 끝에 붙고, 나머지 박스는 동일한 간격으로 정렬
  5.  space-around : 플렉서블 박스에 빈 공간이 있을 때 사용. 양쪽 끝에 있는 박스의 양 끝에도 공간이 생김






  

★  교차축 방향으로 다양하게 플렉스 아이템 배치하기(가로)


align-items : stretch(기본값), flex-start, flex-end, center, baseline


  1. stretch : 박스를 확장해서 배치하며, 기본값
  2. flex-start : 박스를 교차축의 시작점에 배치
  3. flex-end : 박스를 교차축의 끝점에 재치
  4. center : 박스를 교차축의 중앙에 배치
  5. baseline : 자식박스들을 교차축의 시작점에 배치되는 자식 박스의 글자 베이스라인에 맞춰 배치합니다. 시작점에 배치되는 자식 박스는 교차축의 시작점과 글자 베이스라인의 거리가 가장 먼 박스가 교차축의 시작점에 배치된다.







★  교차축 방향으로 플렉스 아이템을 개별적으로 배치하기 (플렉스 아이템)


align-self : auto, stretch, flex-start, flex-end, center, baseline


auto : 플렉서블 박스(플렉스 아이템의 부모 박스)의 align-items 속성값을 상속받음. 

        부모 박스에 적용된 속성값이 없는 경우에는 stretch 속성값이 적용 됨




https://jsfiddle.net/Kimara/eoy79Lwp/14/







★  여러 줄인 플렉스 아이템을 교차축 방향으로 다양하게 배치하기(세로), 

     박스가 여러줄이고 감싸는 박스의 높이값이 정해져있을 때 적용 됨 (플렉서블 박스)


align-content: stretch(기본값), flex-start, flex-end, center, space-between, space-around





https://jsfiddle.net/Kimara/eoy79Lwp/25/








★  플렉스 아이템의 배치순서 바꾸기 (플렉스 아이템)


order : 0(기본값), 정숫값


ex) 총 3개의 박스가 있을 때 현재 아이템이 2번째에 위치한 아이템이라면


oreder:0 => 2번째. 본래의 위치

order:1 => 3번째. 그 다음 위치

order:-1 => 1번째. 그 전의 위치


양수와 음수의 숫자는 관련X. 양과 음으로 구별하는 듯. 위 예시는 총 3개밖에 안되기 때문에?






★ 플렉스 아이템의 크기 늘이고 줄이기


flex: [flex-grow] [flex-shrink] [flex-basis]   => 플렉스 아이템에 적용


0 1 auto : 기본값

0 auto : 0 1 auto와 같음

initial : 0 1 auto와 같음

auto : 1 1 auto와 같음

none : 0 0 auto와 같음



flex-grow  : 

   플렉서블 박스에 여백이 있을 때 플렉스 아이템의 크기를 늘일 수 있는 속성. 

   width, flex-basis 속성값에 따하 늘어나는 크기가 변할 수 있다.

   음숫값은 사용할 수 없다.

   속성값은 비율로 설정한다.


flex-shrink  :

   플렉서블 박스 안의 플렉스 아이템의 크기가 넘칠 경우 크기를 줄일 수 있는 속성.

   width, flex-basis 속성값에 따하 줄어드는 크기가 변할 수 있다.

   음숫값은 사용할 수 없다.

   속성값은 비율로 설정한다.


flex-basis   :

   플렉스 아이템의 기본 크기를 설정하기 위한 속성.

   음숫값은 사용할 수 없다.

   width 속성에서 사용할 수 있는 모든 값을 사용할 수 있다.

   


https://jsfiddle.net/Kimara/eoy79Lwp/31/







display:flex로 기본 레이아웃 짜기



https://jsfiddle.net/Kimara/6rucsLpf/10/















728x90
저작자표시 비영리 (새창열림)

'Web > Styles' 카테고리의 다른 글

[CSS] vertical-align  (0) 2018.07.06
[CSS] css기본 규칙들  (0) 2018.05.21
[CSS] 마우스커서 커스텀  (0) 2018.05.15
[CSS] 뷰포트  (0) 2018.05.15
[CSS] 미디어쿼리  (0) 2018.05.15

티스토리툴바