inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

CSS Flex와 Grid 제대로 익히기

소스코드 다운로드

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

484

신혜정

작성한 질문수 8

0

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

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

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

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

HTML/CSS flex

답변 2

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

신혜정

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

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

감사합니다!!!

가로스크롤 과 margin: 0 -1rem 질문 있습니다

0

119

1

수업자료 다운로드

0

122

1

VS코드에 클래스 이름만 넣으셨는데 선생님이 뭘 누르면 바로 태그로 변하던데...

1

138

1

css grid repeat() 에서 autofit 사용시

0

183

1

menu 아이템 반응형 변경

0

102

1

질문은 아니고.. 오타 발견..

0

121

1

웹에서 위치?값

0

212

1

px, em ,rem을 어떻게 감각적으로 쓸 수 있을까요?

0

510

2

강의에 나오는 html 자동으로 만들어주는 편집기에 대해 알 수 있을까요?

0

310

1

flex-basis auto, 0 차이

0

711

2

padding 대신 gap을 쓰는게 더 편하지 않나요?

2

607

1

animation forwards 관련 질문

0

489

2

auto-fill, auto-fill이 적용되지 않는것 에 대해 질문드립니다.

0

560

1

flex-grow IE 질문드립니다.

0

625

2

Flex-grow가 적용되는 영역에 대해 질문드립니다.

0

437

1

Grid 수직정렬 문의

0

1076

1

card__item에 display:flex를 했을 때..

0

513

1

11vmin

0

418

1

header class 안에 div와 h2

0

577

1

grid 반응형 페이지 step1 질문있습니다~

0

282

1

반응형 페이지 step4 order

0

356

1

미디어쿼리 사이즈

1

286

1

figure + div

0

301

1

CSS Grid를 통한 정렬의 장점

0

248

1