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

2024. 7. 8. 11:45·CSS
Flexbox를 사용하여 수평 및 수직 정렬을 구현할 수 있다.
Flexbox를 활용해 네비게이션 바를 구성할 수 있다.
Flexbox를 이용해 카드 레이아웃을 구성할 수 있다.

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	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 {
		color: white;
		text-decoration: none;
		padding: 10px;
	}
	
	.nav-item:hover {
		background-color: #444;
		border-radius: 5px;
	}
	
	.main-container {
		display: flex;
		justify-content: center;
		background-color: #f0f0f0;
		height: 50vh;
		align-items: center;
	}
	
	.box {
		background-color: blue;
		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>

'CSS' 카테고리의 다른 글

Flexbox - 연습 문제  (0) 2024.07.04
[CSS] FlexItem의 세밀한 제어 flex 속성  (0) 2024.07.04
[CSS] 교차축 정렬에는 align-items와 align-content 이다.  (0) 2024.07.04
[CSS] 주축 방향 정렬 justify-content 란?  (0) 2024.07.04
[CSS] flex-wrap 이해하기  (0) 2024.07.04
'CSS' 카테고리의 다른 글
  • Flexbox - 연습 문제
  • [CSS] FlexItem의 세밀한 제어 flex 속성
  • [CSS] 교차축 정렬에는 align-items와 align-content 이다.
  • [CSS] 주축 방향 정렬 justify-content 란?
미로910
미로910
개발자를 꿈꾸는 민경이의 기록 블로그
  • 미로910
    개발 note
    미로910
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 설치 메뉴얼
      • HTML
      • JAVA
        • Java 기초
        • Java 응용
        • 자료구조
        • HTTP
        • JSP 프로그래밍
      • MySQL
        • MySQL 기본
        • 1일 1쿼리
      • CSS
      • Spring boot
      • JS
        • 게시판 만들기
      • Git
      • Flutter
        • MVVM 활용
        • 심화 버전
        • 1일 1 Flutter
      • 디자인 패턴의 활용
      • error note
      • My Project
        • [졸작] LLM 기반 특허 유사도 분석 시스템
        • 도서 관리 프로그램 (final project)
        • amigo
        • 친구 매칭 프로그램(FMP)
      • Python
      • 딥러닝
      • 네트워크
      • 공부 노트
        • 연구회
        • 자료구조
      • 기타
  • 블로그 메뉴

    • 홈
    • 전체보기
    • -----------------------
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Flutter
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
미로910
[CSS] 웹페이지 레이아웃 구성해 보기
상단으로

티스토리툴바