강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của oremopro1975
oremopro1975

câu hỏi đã được viết

Học CSS Flex và Grid đúng cách

Tải mã nguồn

grid로 2단 작성시 질문입니다..

Viết

·

473

0

간단한게 왼쪽에 메뉴 오 른쪽에 내용

이렇게 grid로 했는데요(grid-template-columns:150px 1fr;)

왼쪽 메뉴 클릭시 오른쪽에 내용을 나타나게 하려면 

어떠한 방법을 써야 하나요??

HTML/CSSflex

Câu trả lời 2

1

studiomeal님의 프로필 이미지
studiomeal
Người chia sẻ kiến thức

내용을 나타나게 한다는건 동작을 말씀하시는거죠?
그런 동작들은 CSS 그리드와는 관계가 없고, 자바스크립트로 하셔야 합니다.
아래 간단하게 코드를 작성해 보았으니 한번 테스트 해보세요~

<!DOCTYPE html>
<html lang="ko">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
	<style>
		* {
			margin: 0;
			padding: 0;
		}
		html,
		body {
			height: 100%;
		}
		.container {
			display: grid;
			grid-template-columns: 150px 1fr;
			min-height: 100%;
		}
		.menu-area {
			background: #fff000;
		}
		.content-area {
			background: lightgray;
		}
		.menu a {
			display: block;
		}
		.content {
			display: none;
		}
		.content.show {
			display: block;
		}
	</style>
</head>
<body>
	<div class="container">
		<div class="menu-area">
			<nav class="menu">
				<a href="#" data-index="0">menu 0</a>
				<a href="#" data-index="1">menu 1</a>
				<a href="#" data-index="2">menu 2</a>
			</nav>
		</div>
		<div class="content-area">
			<div class="content" data-index="0">
				content-0
			</div>
			<div class="content" data-index="1">
				content-1
			</div>
			<div class="content" data-index="2">
				content-2
			</div>
		</div>
	</div>

	<script>
		(function () {
			const menu = document.querySelector('.menu');
			const contents = document.querySelectorAll('.content');
			let currentContent = contents[0];

			function activate() {
				currentContent.classList.add('show');
			}

			function inactivate() {
				currentContent.classList.remove('show');
			}

			menu.addEventListener('click', function (e) {
				e.preventDefault();
				
				if (e.target.dataset.index) {
					if (currentContent) {
						inactivate();
					}
					currentContent = contents[e.target.dataset.index];
					activate();
				}
			});

			activate();
		})();
	</script>
</body>
</html>

0

oremopro1975님의 프로필 이미지
oremopro1975
Người đặt câu hỏi

정말..감사합니다..그리드 레이아웃에 대해서만 설명이 많고..이런 링크에 대해서는 설명이 없더군요..

며칠간의 궁금증이 해소되었습니다..

감사합니다!!!

Hình ảnh hồ sơ của oremopro1975
oremopro1975

câu hỏi đã được viết

Đặt câu hỏi