HTML, CSS

Flexbox 기본 다지기 :: 마이구미

mygumi 2017. 10. 23. 20:41
반응형

이 글은 flex 레이아웃에 대한 기본적인 이해를 도와줄 것이다.

글에서 다루는 것들만 이해해도 많은 이점을 얻게 된다.

예제는 하단 또는 다음 링크를 참고바란다.

flex-direction 의 값을 사용한다면, 주축과 교차축을 바뀐다는 것을 인지하고 있어야한다.

또한, flexBox 를 다룰 때에는 관련된 속성들의 디폴트 값을 이해할 필요가 있다.

Flexbox 기본 - https://codepen.io/mygumi/pen/vewOoY 

Flexbox 응용 - https://codepen.io/mygumi/pen/ZMGaPm


다음 글 Flex 기본 2(flex-wrap, flex) - https://mygumi.tistory.com/344


Flexbox 란 무엇인가?


Flexible boxes 또는 flexbox라고 불리는 CSS3의 새로운 레이아웃 모드이다.

Flexbox를 사용하면 페이지 레이아웃이 다른 화면 크기나 다른 장치에서 요소들이 예상한대로 배치된다.

이름처럼 유동적이기에, float 사용 및 margin 이슈 등을 비롯해 기존 block 모델보다 개선된 기능을 제공한다.


Flexbox를 사용하기 위해서는 어떻게 해야하는가?


css 속성 중 display를 사용하면 된다.


display: flex; // block

display: inline-flex; // inline


Flexbox를 사용하기 위해서는 2가지만 이해하면 충분하다.

그것은 주축(main-axis)과 교차축(cross-axis) 이라는 용어가 된다.


말 그대로 축. x/y 축, 수평과 수직이라고 보면 된다.

주축이 수직이라면, 교차축은 수평. 주축이 수평이라면, 교차축은 수직이다.

기본적으로 display: flex를 사용시 float: left를 쓴것과 같은 모습을 볼 수 있다.



여기서 주축은 수평이 되고, 교차축은 수직이 된다.

Item을 수직으로 보고 싶다면, 현재의 축을 반대로 적용하면 된다.

적용하기 위해서 flex-direction 속성을 사용한다. (디폴트 값은 row 이다.)


flex-direction: column; // row or column. etc...


축의 전환으로 다음과 같은 모습을 볼 수 있다.



이제는 Item 들을 중앙으로 배치하고 싶을 것이다.

이러한 주축과 교차축을 이용해서 Item들을 정렬할 수 있다.

그때 사용하는 속성들이 justify-content와 align-items 이다.


justify-content: center; // 주축

align-items: center; // 교차축


justify-content 속성은 주축을 기준으로 정렬한다.

반대로 align-items 속성은 교차축을 기준으로 정렬하게 된다.

속성을 활용한 예는 다음과 같다.


----------------------------------------------------------------------------------------------------------------------------------------------------------------

display: flex;

justify-content: center;

----------------------------------------------------------------------------------------------------------------------------------------------------------------

display: flex;

align-items: center;

----------------------------------------------------------------------------------------------------------------------------------------------------------------

display: flex;

justify-content: center;

align-items: center;

----------------------------------------------------------------------------------------------------------------------------------------------------------------


See the Pen flex - final by leejunghyun (@mygumi) on CodePen.


다음 글 Flex 기본 2(flex-wrap, flex) - https://mygumi.tistory.com/344

반응형