CSS - Flexbox 레이아웃에 대한 간략한 가이드 - 1부

여러분, 안녕하세요! 👋 저번에 Grid Box 레이아웃에 대해 썼기 때문에 Flexbox 레이아웃에 대해 쓰고 제가 아는 것을 말씀드리겠습니다.

목차


  • Introduction to Flexbox

  • Flex Container
  • Flex Container Properties


  • 플렉스박스 소개

    To flex or not to flex, that is the question! I think that Flexbox is really useful when you want to build a responsive website. Flexbox gives you the power to lay out elements the way you want and easily align elements on your web pages and components. It is really easy to center things when you use Flexbox, I will show you how soon. Moreover, Flexbox allow you change the widths and heights of the Flex Items so that it fits the available spaces, this is why it is good for responsive design. Flexbox deals with directional flow of the Flex Items, whether it be row or column direction, so it can be said that Flexbox is a one-dimensional layout.

    The below image shows the main concept of how Flexbox lay out it's Flex Items base on the flow direction. Note: the main and cross axis switch when you change the flow direction.

    (제공: 기본 및 교차 축 이미지 - css-tricks )

    (스토리 타임: 인턴 시절 예전 웹사이트 반응형 디자인 작업을 했고, 이 웹사이트는 flexbox 이전에 구축되었기 때문에 많은 미디어 쿼리를 수행하고 너비와 패딩을 변경해야 했습니다...😫 하지만 지금은 자신의 프로젝트, flexbox를 사용하면 훨씬 쉬워집니다.)

    플렉스 컨테이너

    Anyway, to begin using Flexbox, just slap display: flex on your container element, this element will now be known as the Flex Container, and all the immediate children of this element will be known as Flex Items.

    There are many Flex Container CSS properties that will allow you to move the Flex Items about, lets take a look at them.

    As always, I will show some examples with the properties but you really do learn best when you try it out yourself. Lets start with some basic set up, a Flex Container with defined size, and display: flex on it. You will notice that, each of the Flex Items loses it's block property and are now lined up in a row next to each other.

    
    .flex-container {
      width: 400px;
      height: 400px;
      outline: 1px solid black;
      display: flex;
    }
    
    .flex-item {
      width: 60px;
      height: 50px;
      outline: 1px solid black;
    }
    
    


    플렉스 컨테이너 속성

    The properties I will talk about are flex-direction , flex-wrap , justify-content , align-items , align-content and gap .

    There is a bit of a pattern when you start using Flexbox, so don't worry if you can't remember them, you can always look them up or just test them using the DevTool.

    • flex-direction determines which direction you want the Flex Items to flow, row (default), row-reverse, column or column-reverse.
    Example of changing the flex-direction
  • flex-wrap는 더 이상 공간이 없을 때 Flex 항목을 래핑할지 여부를 결정합니다. 기본값은 래핑 안 함입니다. 옵션은 wrap, no-wrap 및 wrap-reverse입니다. 플렉스 아이템의 크기에 따라 줄 바꿈 없음이 설정된 경우 축소 또는 오버플로가 발생합니다.

  • 변경 예 flex-wrap
  • justify-content 플렉스 항목을 이동하고 기본 축에 정렬할 수 있습니다(방향이 행인 경우 가로, 방향이 열인 경우 세로). 시작 부분flex-start 또는 끝 부분flex-end에 정렬할 수 있습니다. 또는 중앙에 배치하려면 center를 사용할 수 있습니다. space-evenly , space-aroundspace-between 를 사용하여 간격을 둘 수도 있습니다.

  • 변경 예 justify-content
  • align-items 플렉스 항목을 이동하고 교차 축에 정렬할 수 있습니다(방향이 행인 경우 수직, 방향이 열인 경우 수평). 시작 부분flex-start 또는 끝 부분flex-end에 정렬할 수 있습니다. 또는 중앙에 배치하려면 center를 사용할 수 있습니다. stretch로 설정하고 교차 축의 나머지 공간을 모두 차지할 수도 있습니다(플렉스 항목에 너비/높이가 설정되지 않은 경우).
  • align-itemsjustify-content 을 변경하는 예
  • align-content 추가 공간이 있는 경우 Flex Container 행을 이동하고 Flex Container 행 또는 열을 정렬할 수 있습니다. (자주 안써서 설명이 잘 안되네요) 😩.

  • 변경 예 align-content
  • gap 그리드 상자처럼 행 간격과 열 간격을 설정합니다.

  • 요약



    이제 Flexbox를 사용하는 방법을 알았습니다. 반응형 구성 요소 및 페이지를 디자인하고 justify-content , align-itemsalign-content 에 따라 콘텐츠를 정렬할 수 있습니다. flex-directionflex-wrap 를 사용하여 흐름 방향과 플렉스 항목의 래핑 동작을 정의할 수도 있습니다. 두 축은 ​​"메인"과 "크로스"라고 하며 방향에 따라 변경됩니다.

    (보너스: 플렉스 아이템 자체도 플렉스 컨테이너가 될 수 있습니다. display: flex를 배치하면 모든 플렉스 컨테이너 속성을 사용할 수 있습니다.)

    오늘은 여기까지입니다. 제 게시물을 짧고 이해하기 쉽게 유지하고 싶었습니다. 다음 시간에는 Flex Items 속성과 이를 사용하는 방법에 대해 이야기하겠습니다. 항상 그렇듯이 도움이 되거나 혼란스럽거나 일반적인 피드백이 있으면 댓글을 남겨주세요 😀. 다른 리소스를 선호하는 경우 대화형 예제가 있는 W3School 또는 Flexbox에 대한 자세한 설명이 있는 MDN Docs을 시도할 수 있습니다.

    좋은 웹페이지 즐겨찾기