본문 바로가기
JavaScript

[JavaScript] 탭 레이아웃 만들기

by teamnova 2024. 3. 24.

오늘은 자바스크립트를 활용하여 탭 레이아웃을 만들어 보겠습니다.

 

코드입니다.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>탭 레이아웃 예제</title>
<link rel="stylesheet" href="style.css">
</head>
<body>

<div class="tab">
<button class="tablinks" onclick="openTab(event, 'Tab1')">Tab 1</button>
<button class="tablinks" onclick="openTab(event, 'Tab2')">Tab 2</button>
<button class="tablinks" onclick="openTab(event, 'Tab3')">Tab 3</button>
</div>

<div id="Tab1" class="tabcontent">
<h3>Tab 1</h3>
<p>Tab 1의 내용입니다.</p>
</div>

<div id="Tab2" class="tabcontent">
<h3>Tab 2</h3>
<p>Tab 2의 내용입니다.</p>
</div>

<div id="Tab3" class="tabcontent">
<h3>Tab 3</h3>
<p>Tab 3의 내용입니다.</p>
</div>

<script>
function openTab(evt, tabName) {
// 모든 탭 콘텐츠를 숨깁니다.
var tabcontent = document.getElementsByClassName("tabcontent");
for (var i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}

// 모든 탭 링크에서 "active" 클래스를 제거합니다.
var tablinks = document.getElementsByClassName("tablinks");
for (var i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}

// 클릭된 탭을 보여주고, 탭 링크에 "active" 클래스를 추가합니다.
document.getElementById(tabName).style.display = "block";
evt.currentTarget.className += " active";
}

</script>
</body>
</html>

 

 

style.css

/* 탭 링크 스타일 */
.tab button {
background-color: #f1f1f1;
float: left;
border: none;
outline: none;
cursor: pointer;
padding: 14px 16px;
transition: 0.3s;
}
 
/* 탭 링크 - 마우스 호버 시 */
.tab button:hover {
background-color: #ddd;
}
 
/* 탭 링크 - 활성화된 탭 */
.tab button.active {
background-color: #ccc;
}
 
/* 탭 콘텐츠 스타일 */
.tabcontent {
display: none;
padding: 6px 12px;
border: 1px solid #ccc;
border-top: none;
}
 

 

결과입니다.