본문 바로가기

Web 개발/CSS

[CSS Layout] Flex box 1. 기본 방향_flex-direction 응용

지난번 살펴본 Flex Box의 기본방향 'flex-direction' 을 응용해보면, 어떨까 갑자기 생각이 나서.. 

 

기본적인 홈페이지의 구성을 하나하나 잡아가보면서 진행하면 어떨까 싶어서요. 

대강 막 쳤어요.

 

상단에 네비게이션 바, 가운데 프로모션 이미지, 아래에 메인 내용, 오른쪽에 별도의 섹션을 넣고, 아래에 footer를 달겁니다. 

우리가 살펴봤던것처럼, flex의 방향만 가지고도 이렇게 배치를 잡아나갈 수 있습니다. 

 

row로 해서 잡아나가도 상관없고, column으로 해서 잡아나가도 상관은 없어요. 우리는 일단 해볼겁니다. 

처음에는 이렇게 틀을 잡고, 안에 내용을 채워나갈거에요. 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        * {
            box-sizing: border-box;

        }

        body {
            font-family: sans-serif;
            margin: 0;
            font-size: 2em;
            line-height: 1.7;

        }

        .row {
            display: flex;
            flex-wrap: wrap;
            flex-direction: column;
            border: 1px solid green;
            padding: 2%;
            text-align: center;
        }

        .contents,
        .navbar,
        .promo,
        .footer {
            width: 100%;
            align-items: center;
            border: 1px solid blue;
        }

        .navbar,
        .contents {
            background-color: lightblue;
        }

        .contents {
            display: flex;
            flex: 0, 1, 0, 1;
        }

        .main {
            width: 70%;
            background-color: lightcyan;
            flex: 0, 1, 0, 0;
        }

        .aside {
            width: 30%;
        }
    </style>
</head>

<body>
    <div class="row">
        <div class="navbar">navbar</div>
        <div class="promo">promo</div>
        <div class="contents">
            <div class="main">main</div>
            <div class="aside">aside</div>
        </div>
        <div class="footer">footer</div>
    </div>
</body>

</html>

더 세부적인 내용으로는, 네비게이션 바에 내용들을 채워나간다던가, 메인 영역에 카드(이미지와 텍스트가 삽입되어 있는)를 삽입한다든가, 옆쪽에 별도의 메뉴를 넣어준다든가... footer에 여러 열을 삽입해서 각 섹션에 맞는 내용을 넣을 수 있을겁니다. 

 

하나씩 하나씩 그것들을 채워나가기도 할건데, 일단 구성만 잡고 다른 녀석들은 옵션으로 잡아가보도록 할게요.