본문 바로가기

CSS flexbox

웹페이지 레이아웃 구성해 보기

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
    body{
        margin: 0;
        padding: 0;
        font-family:  Arial, sans-serif;
    }
    .navbar{
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        padding: 10px 20px;
        background-color: #333;
    }
    .nav-item{
        text-decoration: none;
        color: #fff;
        padding: 10px;
    }
    .nav-item:hover{
        background-color: #444;
        border-radius: 5px;;
    }
    .main-container{
        display: flex;
        justify-content: center;
        align-items: center;
        height: 50vh;
        background-color: #f0f0f0;
    }
    .box {
        background-color: #426ae0;
        color: white;
        padding: 20px;
        border-radius: 5px;
        text-align: center;
    }
    .card-container {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
        padding: 20px;
    }
    .card {
        flex: 1 1 calc(33.33% - 80px);
        background-color: #fff;
        border: 1px solid #ddd;
        border-radius: 8px;
        /* 수평 오프셋 : 0, 수직 오프셋: 2px; 흐림반경 4px, 그림자 색상 10%*/
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        padding: 20px;
    }
    @media (max-width: 800px){
        /* 800px 이하라면 카드 레이아웃을 2열 레이아웃으로 설정 */
        .card{
            flex: 1 1 calc(50% - 80px);
        }
    }
    @media (max-width: 500px){
        /* 500px 이하라면 카드 레이아웃을 1열 레이아웃으로 설정 */
        .card{
            flex: 1 1 calc(100% - 80px);
        }
    }
</style>
</head>
<body>
    <div class="navbar">
        <a href="#" class="nav-item">홈</a>
        <a href="#" class="nav-item">소개</a>
        <a href="#" class="nav-item">서비스</a>
        <a href="#" class="nav-item">연락처</a>
    </div>
    
    <div class="main-container">
        <div class="box">수평 및 수직 정렬된 아이템</div>
    </div>

    <div class="card-container">
        <div class="card">
            <h2>카드 1</h2>
            <p>카드 내용 1</p>
        </div>
        <div class="card">
            <h2>카드 2</h2>
            <p>카드 내용 2</p>
        </div>
        <div class="card">
            <h2>카드 3</h2>
            <p>카드 내용 3</p>
        </div>
        <div class="card">
            <h2>카드 4</h2>
            <p>카드 내용 4</p>
        </div>
        <div class="card">
            <h2>카드 5</h2>
            <p>카드 내용 5</p>
        </div>
        <div class="card">
            <h2>카드 6</h2>
            <p>카드 내용 6</p>
        </div>

    </div>
</body>
</html>
728x90

'CSS flexbox' 카테고리의 다른 글

CSS flexbox - 교차축 정렬 align-items와 align-content  (0) 2024.07.02
CSS flexbox - 주축 방향 정렬 justify-content  (0) 2024.07.02
CSS flexbox - flex-wrap  (0) 2024.07.02
CSS flexbox - flex-direction  (0) 2024.07.01
CSS flexbox  (0) 2024.07.01