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

안전자산의 뜻과 종류 | 자산가치의 하락이 적고 신뢰도가 높은 자산

이미지
국제사회가 어지러운 경우, 시장 변동성이 커지고 경제 전망이 불투명해진다. 이런 경제 상황이 불안해지는 경우 사람들의 시선은 `안전자산`으로 향하게 된다. 불안한 경제의 위기 상황 속에서 내 소중한 원금을 최대한 보존할 수 있는 자산은 대표적으로 금, 달러, 국채가 있다. `안전자산`이라고 해도 가지고 있는 원금을 완전히 보존한다고 장담할 수 없지만, 가치 하락에 대한 변동성은 상대적으로 작다. 즉, 자신이 가진 자산가치의 하락이 적고, 신뢰도가 높은 자산을 의미한다. 안전자산 뜻 종류 / 금, 예금, 적금, 미국 달러 안전자산이란 무엇인가? `안전자산`의 뜻은 금융 시장의 불확실성이 커지거나 위험이 닥쳤을 때도 가치가 크게 하락하지 않고, 원금이 상대적으로 최대한 안전하게 보장될 가능성이 높은 자산을 뜻한다. 단순히 가격이 변하지 않는 것 뿐만 아니라, 필요할 때 즉시 현금화할 수 있다는 장점이 있지만, `유동성`과 채무 불이행에 따른 `신용도`가 어느 정도는 뒷받침되어야 합니다. 이런 경우 유동성과 변동폭이 큰 주식같은 투자 자산에서 돈은 빠져나오며 `안전자산`으로 돈이 다시 몰리는 현상이 발생한다. 대표적인 안전자산의 종류 안전자산의 세계에도 대장주들이 있다. 금, 달러, 국채가 그렇다. 시장 상황에 따라 선호도는 다르지만, 전 세계적으로 통용되는 대표적인 자산은 다음과 같다. 금(Gold) 인플레이션이나 화폐 가치 하락에 대비할 수 있는 대표적인 실물 자산이다. `실물`이라는 점에서 사람들의 심리적 안정감이 크다. 예금, 적금 가장 친숙한 형태의 안전자산 중 하나. 예금자 보호법에 의해 일정 금액까지 원금이 보장된다. 미국 달러(USD) 세계 기축통화인 달러는 경제 위기 시 가치가 상승하는 경향이 있다. 가장 강력한 유동성을 자랑한다. 미국 국채 미국 정부가 망하지 않는 한 원금과 이자를 보장받을 수 있다는 신뢰가 존재한다. 미국 국채의 신뢰성 덕분에 가장 안전한 국가 채권으로 분류됩니다. 안전자산 투자 시 주의사항 안전자산이 무조건 `무결점`인 것도 ...