인프런 커뮤니티 질문&답변

신혜정님의 프로필 이미지
신혜정

작성한 질문수

CSS Flex와 Grid 제대로 익히기

소스코드 다운로드

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

작성

·

419

0

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

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

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

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

답변 2

1

1분코딩님의 프로필 이미지
1분코딩
지식공유자

내용을 나타나게 한다는건 동작을 말씀하시는거죠?
그런 동작들은 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

신혜정님의 프로필 이미지
신혜정
질문자

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

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

감사합니다!!!

신혜정님의 프로필 이미지
신혜정

작성한 질문수

질문하기