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

채권, 발행어음, RP 뜻과 차이 / 돈을 빌려주고 이자 수익을 기대해 보자.

이미지
토스( Toss )증권을 이용해 주로 채권 투자를 하다보면, 발행어음과 RP 라는 단어를 보게 된다. 채권과 비슷한 투자 상품같은 느낌이 있지만, 내용을 찾아보면 이것 또한 차이가 있다. 누구에게 어떻게 돈을 빌려주느냐 ?? 에 대한 차이도 있지만, 어떤 구조로 돈을 빌리고, 돈을 갚으며 원금과 이자를 지급하는지에 따른 차이가 크다. 채권 또한 어려운 구조다. 장점이라면, 예금보다는 높은 이자, 주식보다 안정성이 높다. 다만, 채권, 발행어음, RP 는 예금자보호대상은 아니며, 손해 또한 발생한다. ▣ 토스에서 말하는 단어의 뜻 토스앱을 실행하고 투자 관련 메뉴에 들어가면 여러가지를 볼 수 있다. 채권의 경우 마케팅이 부족한 것인지, 주식보다 인지도가 낮고, 단어 자체가 부정적일 수 있다. 채권하면 빚이라는 단어와 먼저 연관되어 생각되기 때문인데, 채권 투자가 꼭 나쁜 것만은 아니다. 토스앱을 보면 채권, 발행어음, RP에 대한 간단한 설명을 보여주는데, 한마디로 요약할 수 있다. ` 투자를 하면 만기시 원금 + 이자를 받을 수 있다 ` 물론, 채권, 발행어음, RP 투자가 반드시 수익을 보장하진 않는다. 만기 중간에 다시 팔거나, 돈을 지급할 능력이 없는 회사라면 채권 또한 손해가 날 수 있다. 주식보다 쉬운 점이 돈이 모이는 은행권, 펀드사는 만기시에 원금 + 이자 는 보장된다는 장점이 있다. 채권, 발행어음, RP 에 대한 설명을 간단히 언급해 본다. 채권, 발행어음, RP의 경우 공통점은 일정 기간 돈을 맡기면 만기기 원금 + 이자 수익을 얻는 금융상품이며, 투자 상품이기 때문에 예금자보호는 되지 않는다. 간단한 차이를 보자. 채권은 정부, 공공기관, 은행, 기업 등이 돈을 빌리고, 만기시, 원금과 이자 지급을 약속하며 채권을 발행한다. 채권 은 정해진 만기까지 보유하면 약속된 원금과 이자를 받을 수 있다. 발행어음 은 자기자본 4조 원 이상인 증권사가 자체 신용으로 발행하는 1년 이내의 단기 상품이며, 정해진 약정 금리를 제공한다. RP 는 국공채 등...