Animated Turtle

CSS

레이아웃 - flex 유형 사용법

훙구 2023. 3. 1. 18:44

...

728x90
반응형

레이아웃 flex 유형으로 만들기

flex layout은 요소들이 포함된 큰 박스에 flex를 선언하고, 안에 있는 요소들에게는 유연하게 배치하는 속성들을 부여하여 레이아웃을 잡는 것을 말합니다.

레이아웃 완성본

 

기본 틀 구성하기

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>레이아웃</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        body {
            background-color: #FFF3E0;
        }
        #wrap {
            width: 1200px;
            margin: 0 auto;
        }
        #header {
            width: 1200px;
            height: 100px;
            background-color: #FFE0B2;
        }
        #nav {
            width: 1200px;
            height: 100px;
            background-color: #FFCC80;
        }
        #aside {
            width: 400px;
            height: 780px;
            background-color: #FFB74D;
        }
        #section {
            width: 800px;
            height: 780px;
            background-color: #FFA726;
        }
        #footer {
            width: 1200px;
            height: 100px;
            background-color: #FF9800;
        }
    </style>
</head>
<body>
    <div id="wrap">
        <header id="header"></header>
        <nav id="nav"></nav>
        <aside id="aside"></aside>
        <section id="section"></section>
        <footer id="footer"></footer>
    </div>
</body>
</html>

기본 틀을 만들어 준 코드입니다.

기본 틀

기본 틀의 결과를 보면 위 처럼 나오는데 aside와 section을 나란히 정렬해주기 위해서,

aside와 section이 포함되어 있는 전체를 감싸고 있는 wrap에게 display:flex; / flex-wrap:wrap;의 속성을 부여합니다.

        #wrap {
            width: 1200px;
            margin: 0 auto;
            display: flex;
            flex-wrap: wrap;
        }

다음과 같이 속성을 부여하게 되면 맨 위의 완성본과 같은 모양이 되는 것을 확인할 수 있습니다.

flex의 속성에 대해 조금 더 알아보도록 하겠습니다.

 

flex

속성 값 속성 설명
flex-grow 자식 요소가 적거나 그 크기가 작아 공간이 남을 때 항목의 크기를 늘려 채워주는 방법을 정의합니다.
flex-shrink 자식 요소가 많거나 그 크기가 커서 공간이 부족할 때 각 항목의 크기를 줄여 채워주는 방법을 정의합니다.
flex-basis 자식 요소들의 초기 길이를 지정하는 속성입니다.

flex-direction

자식 요소를 나열하는 방향을 지정하는 속성입니다. 부모요소에게 지정합니다.

 

속성 값 속성 설명
column 위에서 아래로 나열
column-reverse 아래에서 위로 나열
row (기본값) 좌측에서 우측으로 나열
row-reverse 우측에서 좌측으로 나열

justify-content

공간이 남을 때, 즉 flex-grow: 0일 때 자식 요소들을 가로 정렬하는 속성입니다.

속성 값 속성 설명
flex-start (기본값) 시작쪽으로 정렬 (보통 왼쪽)
flex-end 끝쪽으로 정렬 (보통 오른쪽)
center 중앙으로 정렬
space-between 양쪽 정렬
space-around 요소 좌우 동일 간격 

flex-wrap

flex 자식 요소들의 줄바꿈 방식을 지정하는 속성입니다.

속성 값 속성 설명
wrap 자식 요소들이 많으면 다음 줄로 넘침
nowrap (기본) 자식 요소들이 많아도 한줄 안에 배치
wrap-reverse 자식 요소들이 많으면 다음 위 줄로 넘침

flex-flow

flex-direction과 flex-wrap을 나란히 붙여 하나의 속성처럼 쓸 수 있습니다. 그러므로 기본값은 flex-flow : row nowrap; 입니다.

align-items

자식 요소들을 세로 정렬하는 속성입니다.

속성 값 속성 설명
flex-start 시작쪽으로 정렬 (보통 위쪽)
flex-end 끝쪽으로 정렬 (보통 아래쪽)
center 세로 중앙 정렬
baseline 글자의 baseline 기준으로 정렬
stretch (기본값) 부모 요소의 세로 크기를 따라 확장됨

 

order

자식 요소들의 순서를 바꿔주는 속성입니다. 몇 번째에 배치할지 순서를 지정합니다.

align-self

자식 요소 중 선택된 항목에 대해서만 세ㅗㄹ로 다시 정렬하는 속성입니다. 속성들은 align-items의 속성들과 같습니다.

align-content

flex-wrap : wrap;일 경우 여러 줄을 세로로 정렬하는 속성입니다. 속성들은 align-items의 속성들과 같습니다.\

 

 

 

 

이상으로 레이아웃 flex유형에 대해서 알아보았습니다 !

728x90
반응형