css display flex 사용 가로 또는 세로 정렬하기

`display: flex`는 웹페이지의 레이아웃을 만들 때
자식 요소들을 수평 또는 수직 방향으로 위치를 지정할 때 사용된다.
`display: flex`가 지정된 html 요소는 `flex-direction, justify-content, align-items`을 사용하여 내부의 다른 html 요소들을 쉽게 배치할 수 있다.
각각 배치 방향(flex-direction), 가로 정렬(justify-content), 세로 정렬(align-items)을 뜻한다.
단순히 방향과 정렬만 지정해 주면 요소들을 쉽게 배치할 수 있기 때문에,
자주 사용된다.
또한, 위에서 언급한 4가지는 같이 사용되기 때문에 기록해 두자.

css display flex 사용
가로 또는 세로 정렬하기

Using CSS Display FLEX Property
CSS `display: flex` 사용하기

화면에 구성 요소를 배치하는 레이아웃 작업은 번거롭다.
때문에 css의 `display: flex`를 사용하면 
html5 요소들을 가로 또는 세로 정렬하여 편하게 구성할 수 있다.
단순히 container로 사용할 div 요소에 설정하면,
자식 html5 요소들을 가로 또는 세로로 배치할 수 있다.
특히, 반응형 웹을 위해 레이아웃을 구성할 때 `display: flex`는 괜찮은 방법 중 하나이다.

함께하는 요소 4가지

`display: flex`를 사용하여 레이아웃 또는 자식 html 요소들을 배치할 때 
거의 함께하는 요소들이 있다.
4가지 정도이며, 의미 정도는 알아두자.

  • display: flex
    • flex-direction
      • 자식 요소들을 배치하는 주축 방향 설정
    • justify-content
      • 주축 방향 정렬 방법
    • align-items
      • 교차축 방향 정렬 방
    • flex-wrap
      • 줄바꿈 여부

주축과 교차축

`display: flex`를 사용할 때 중요한 개념이 주축과 교차축이다.
주축과 교차축은 `flex-direction`에 지정된 값으로 결정된다.
주축은 main axis, 교차축은 cross axis 이다.
`flex-direction`로 지정된 방향이 주축( main axis )이고,
엇갈린 축이 교차축( cross axis)이다.
`display: flex`로 설정된 부모 요소의 자식요소들을
가로로 배치하려면 `flex-direction: row`로 지정하면
주축은 가로, 교차축은 세로가 된다.
반대로,
`display: flex`로 설정된 부모 요소의 자식요소들을
세로로 배치하려면 `flex-direction: column`로 지정하면
주축은 세로, 교차축은 가로가 된다.

주축: 가로, 교차축: 세로

display: flex;
flex-direction: row;

주축: 세로, 교차축: 가로

display: flex;
flex-direction: column;

아래의 이미지와 비교해 보자.
부모 div 태그에 `display: flex`을 지정했다.
그리고, `flex-direction`을 `row 또는 column` 중 하나로 지정한 것에 따라 `주축과 교차축`이 변경된다.
즉, `flex-direction`으로 지정된 방향이 `주축`, 교차되는 방향이 `교차축`이 된다.

flex-direction: row
주축: 가로, 교차축: 세로,
flex-direction: column
주축: 세로, 교차축: 가로

상세한 옵션들

`display: flex`의 기본 개념을 살펴봤다.
`flex-direction`에 설정된 설정값이 row 또는 column에 따라 주축과 교차축이 결정된다.
쉽게 풀이하면,
`flex-direction: row`인 경우 주축은 가로, 가로축은 세로가 된다.
`flex-direction: column`인 경우 주축은 세로, 가로축은 가로가 된다.
이제 옵션에 `display: flex`의 옵션들에 대해 간단히 살펴본다.

  • display: flex
    • 세로 또는 가로로 자식 요소들을 배치한다.
  • flex-direction
    • 설정값이 주축(main axis)
      • row
        • 주축: 가로 ( 좌->우 )
        • 교차축: 세로 ( 위->아래 )
      • column
        • 주축: 세로 ( 위->아래 )
        • 교차축: 가로 ( 좌->우 )
      • row-reverse
        • 주축: 가로( 우->좌 )
        • 교차축: 세로( 위->아래 )
      • column-reverse
        • 주축: 세로 ( 아래->위 )
        • 교차축: 가로 ( 좌->우 )
  • justify-content
    • 주축을 기준으로 자식 요소들을 정렬한다.
    • flex-start
      • 자식 요소들을 시작 지점에 정렬한다.
    • flex-end
      • 자식 요소들을 끝 지점에 정렬한다.
    • center
      • 자식 요소들을 가운데 지점에 정렬한다.
    • space-between
      • 자식 요소들에 동일한 간격을 설정하고 양 끝에 여백을 제거한다.
    • space-around
      • 자식 요소들에 동일한 간격을 설정하고 양 끝에 여백을 설정한다.
    • space-evenly
      • 자식 요소들에 모든 간격을 동일하게 설정한다.
  • align-items
    • 교차축을 기준으로 자식 요소들을 정렬한다.
      • stretch
        • 자식 요소들을 교차 축 방향으로 늘려 맞춘다.
      • flex-start
        • 자식 요소들을 시작 지점에 정렬한다.
      • flex-end
        • 자식 요소들을 끝 지점에 정렬한다.
      • center
        • 자식 요소들을 가운데 지점에 정렬한다.
      • baseline
        • 자식 요소들을 텍스트 기준선 기준으로 정렬한다.
  • flex-wrap
    • 자식요소들이 한 줄에 들어가지 않을 경우
      줄바꿈할지 여부를 설정한다.
      • nowrap
        • 줄바꿈 안함.
      • wrap
        • 아랫방향 줄바꿈 허용.
      • wrap-reverse
        • 윗방향 줄바꿈 허용.

코딩하기 / 눈으로 확인하기

위에서 언급한 `display: flex`와 옵션들이 어떻게 동작하는지 
눈으로 확인할 때가 되었다.
`display: flex`는
자식요소들을 가로( row ), 세로( column ) 방향으로 정렬한다. 라는 점과
`flex-direction: row 또는 column`에 따라 주축과 교차축이 결정된다는 점을
기억하자.

기본코드 작성하기

css의 `display: flex`를 테스트하기 위해 
기본적인 html 코드를 준비한다.
이미지 3개를 준비했고, css style을 사용해 대충 표시만 해 주었다.
어렵지 않은 구조이다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>display: flex</title>
    <style>

        * {
            padding: 0;
            margin: 0;
        }

        img {
            width: 200px;
            padding: 5px;
        }

        .border1 {
            border: 1px solid black;
            padding: 5px;
            margin: 5px;
        }
    </style>
</head>
<body>
    <div class="border1">
        <img src="https://i.pinimg.com/736x/04/bd/e8/04bde88b4bccf992d6ad88f0309c82f2.jpg">
        <img src="https://i.pinimg.com/736x/45/25/bd/4525bd1594df6567f2537a3d23c19df1.jpg">
        <img src="https://i.pinimg.com/736x/6a/9e/fe/6a9efe6208810ceb3158e640690453ba.jpg">
    </div>
    <div class="border1">
        <img src="https://i.pinimg.com/736x/04/bd/e8/04bde88b4bccf992d6ad88f0309c82f2.jpg">
        <img src="https://i.pinimg.com/736x/45/25/bd/4525bd1594df6567f2537a3d23c19df1.jpg">
        <img src="https://i.pinimg.com/736x/6a/9e/fe/6a9efe6208810ceb3158e640690453ba.jpg">
    </div>
</body>
</html>

위의 코드에 대한 결과화면은 다음과 같다.

기본코드 준비, 이미지만 표시

이제 `display: flex`의 기본적인 사용법만 확인해 보자.
상세한 것은 다음에 확인해 본다.
위에서 언급했듯 
먼저, `display: flex`는 `flex-direction`과 함께 사용된다.
`flex-direction: row`는
메인축이 가로, 교차축은 세로, 좌에서 우로 자식요소들이 배치된다.
`flex-direction: column`은
메인축이 세로, 교차축은 가로, 위에서 아래로 자식요소들이 배치된다.
이제 코드를 보고 직접 확인해 보자.

display: flex / flex-direction: row
메인축 가로, 교차축 세로, 좌->우 자식 요소 배치

`display: flex`는 'flex-direction: row'과 함께 사용하면
자식 요소들은 가로로 배치된다.
메인축은 가로, 교차축은 세로, 좌->우 방향으로 자식 요소가 배치된다.
기본코드는 다음과 같다.

/* 기본코드 */
display: flex;
flex-direction: row;

위의 코드를 style로 정의하고, 위에서 언급한 기본코드에 작성한다.
아래는 전체코드이며,
참고할 부분은 `.displayFlexRow`을 참고하면 된다.


<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>display: flex</title>
    <style>

        * {
            padding: 0;
            margin: 0;
        }

        img {
            width: 200px;
            padding: 5px;
        }

        .border1 {
            border: 1px solid black;
            padding: 5px;
            margin: 5px;
        }

        .displayFlexRow {
            display: flex;
            flex-direction: row;
        }

    </style>
</head>
<body>
    <div class="border1 displayFlexRow">
        <img src="https://i.pinimg.com/736x/04/bd/e8/04bde88b4bccf992d6ad88f0309c82f2.jpg">
        <img src="https://i.pinimg.com/736x/45/25/bd/4525bd1594df6567f2537a3d23c19df1.jpg">
        <img src="https://i.pinimg.com/736x/6a/9e/fe/6a9efe6208810ceb3158e640690453ba.jpg">
    </div>
</body>
</html>

위의 코드에 대한 결과화면은 다음과 같다.
자식 요소인 이미지들이 배치되는 형태는
메인축은 가로, 좌에서 우로 정렬되는 것을 확인할 수 있다.

display: flex / flex-direction: row
메인축: 가로 / 교차축: 세로 / 좌->우: 배치 정렬

display: flex / flex-dirction: column
메인축 세로, 교차축 가로, 위->아래 자식 요소 배치

`display: flex`는 `flex-direction: column`과 함께 사용하면 
자식요소들은 세로로 배치된다.
메인축은 세로, 교차축은 가로, 위->아래 방향으로 자식 요소가 배치된다.
기본코드는 다음과 같다.

display: flex;
flex-direction: column;

위의 코드를 style로 정의하고, 위에서 언급한 기본코드에 작성한다.
아래는 전체코드이며,
참고할 부분은 `.displayFlexColumn`을 참고하면 된다.


<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>display: flex</title>
    <style>

        * {
            padding: 0;
            margin: 0;
        }

        img {
            width: 200px;
            padding: 5px;
        }

        .border1 {
            border: 1px solid black;
            padding: 5px;
            margin: 5px;
        }

        .displayFlexColumn {
            display: flex;
            flex-direction: column;
        }
    </style>
</head>
<body>
    <div class="border1 displayFlexColumn">
        <img src="https://i.pinimg.com/736x/04/bd/e8/04bde88b4bccf992d6ad88f0309c82f2.jpg">
        <img src="https://i.pinimg.com/736x/45/25/bd/4525bd1594df6567f2537a3d23c19df1.jpg">
        <img src="https://i.pinimg.com/736x/6a/9e/fe/6a9efe6208810ceb3158e640690453ba.jpg">
    </div>
</body>
</html>

위의 코드에 대한 결과화면은 다음과 같다.
자식 요소인 이미지들이 배치되는 형태는
메인축은 세로, 위에서 아래로 정렬되는 것을 확인할 수 있다.

display: flex / flex-direction: column
메인축: 세로 / 교차축: 가로 / 위->아래: 배치 정렬

가로, 세로 / 메인축, 교차축

`display: flex`는 자식 요소들을 `가로 또는 세로`로 배치하는 역할을 하며,
`flex-direction`을 사용해 `row ( 가로 )` 또는 `column ( 세로 )`을 사용하여 자식 요소들의 배치를 설정한다.
`flex-direction`에서 설정된 값으로 메인축과 교차축이 설정된다.
메인축은 눈에 보이는 그대로이며, 교차축은 다른 값을 통해 자식 요소를 배치할 수 있다.

  • display: flex
    • 자식 요소를 세로 또는 가로로 배치
  • flex-direction: row
    • 메인축: 가로 / 교차축: 세로
  • flex-direction: column
    • 메인축: 세로 / 교차축: 가로

댓글

이 블로그의 인기 게시물

귀문과 혼문 뜻 어떤 영(靈)들이 드나드는 문

윈도우 캡쳐 이미지 자동 저장 위치 찾기

구글 스프레드시트 행 높이 크기 조절하는 방법

Featured Post

유가증권 뜻과 종류

이미지
유가증권은 재산적 가치가 있는 권리를 표시한 증권으로, 일정한 재산권을 증명하거나 그 권리를 이전, 행사하기 위해 사용되는 문서를 뜻한다. 즉, 유가증권은 금전적 가치가 있으며 거래나 양도가 가능한 권리를 나타내는 증권이다. 유가증권의 대표적인 종류에는 주식, 채권, 수표, 어음 등이 있다. 주식은 기업의 자본을 구성하는 지분을 나타내는 증권으로, 보유자는 주주로서 배당을 받거나 의결권을 행사할 수 있다. 채권은 국가, 지방자치단체, 기업 등이 자금을 빌리기 위해 발행하는 증권으로, 일정 기간 후 원금과 약정된 이자를 지급받을 권리를 나타내며, 국채, 지방채, 회사채 등이 대표적이다. 어음은 일정한 금액을 정해진 날짜에 지급하겠다는 약속 또는 지급을 위탁하는 증권이며, 수표는 발행인이 금융기관에 일정 금액을 지급하도록 지시하는 증권이다. 유가증권은 재산적 권리를 증명하고 거래할 수 있도록 만든 증권을 통칭하며, 투자, 자금조달, 결제 등 다양한 경제활동에 이용된다. 유가증권 뜻과 종류 ▣ 유가증권 단어의 뜻 유가증권(有價證券, Securities)은 재산적 가치가 있는 권리나 투자자의 권리를 나타내는 증권이다. 한자로는 有價證券( 有 있을 유, 價 값 가, 證 증거 증, 券 문서 권 )이며, 영어로는 Securities이다. 문자 그대로 풀어보면 `가치가 있는 권리를 증명하는 증서`라 할 수 있다. 유가증권은 금전이나 재산상의 권리와 연결되어 있다는 점이 특징이다. 과거에는 종이 형태의 증권이었지만, 지금은 전자등록 방식으로 권리를 기록하고 거래하는 경우도 많다. 유가증권은 크게 주식, 채권, 어음, 수표 등이 있다. 주식은 회사에 대한 지분을 나타내고, 채권은 국가, 기업 등이 자금을 빌리고 원금과 이자를 지급하기 위해 발행한다. 어음과 수표는 일정한 금액의 지급을 목적으로 사용하는 증권이다. 유가증권은 경제적 가치가 있는 권리를 나타내며 거래,이전할 수 있도록 만든 증권을 통칭하는 개념으로 이해할 수 있다. 유가증권 단어의 뜻 ▣ 유가증권 종류 유가증권은 ...