웹사이트에서 여러 메뉴를 깔끔하게 정리하고 싶다면 드롭다운 내비게이션 바가 효과적인 해결책입니다. HTML과 CSS만을 사용해 마우스를 올리면(hover) 하위 메뉴가 펼쳐지는 드롭다운 메뉴를 손쉽게 구현할 수 있습니다.
아래 예제는 일반 링크 항목과 함께 드롭다운 버튼이 포함된 상단 내비게이션 바를 만드는 전체 코드입니다.
예제 코드
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style>
.menu-btn {
background-color: #040008;
color: white;
padding: 16px;
font-size: 20px;
font-weight: bolder;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
border: none;
}
.dropdown-menu {
position: relative;
display: inline-block;
}
.menu-content {
display: none;
position: absolute;
background-color: #017575;
min-width: 160px;
z-index: 1;
}
nav{
background-color: #017575;
}
.links,.links-hidden{
display: inline-block;
color: rgb(255, 255, 255);
padding: 12px 16px;
text-decoration: none;
font-size: 18px;
font-weight: bold;
}
.links-hidden{
display: block;
}
.links{
display: inline-block;
}
.links-hidden:hover,.links:hover {
background-color: rgb(8, 107, 46);
}
.dropdown-menu:hover .menu-content {
display: block;
}
.dropdown-menu:hover .menu-btn {
background-color: #3e8e41;
}
</style>
</head>
<body>
<h2>아래 내비게이션 바의 드롭다운 버튼에 마우스를 올리면 메뉴가 열립니다</h2>
<nav>
<a class="links" href="#">HOME</a>
<a class="links" href="#">EMPLOYEES</a>
<a class="links" href="#">CAREER</a>
<div class="dropdown-menu">
<button class="menu-btn">Open <</button>
<div class="menu-content">
<a class="links-hidden" href="#">Contact Us</a>
<a class="links-hidden" href="#">Visit Us</a>
<a class="links-hidden" href="#">About Us</a>
</div>
</div>
</nav>
</body>
</html>실행 결과
위 코드를 실행하면 다음과 같이 HOME, EMPLOYEES, CAREER 링크와 함께 'Open' 드롭다운 버튼이 배치된 내비게이션 바가 화면에 나타납니다.

마우스 오버 시 동작
'Open' 버튼 위에 마우스 커서를 올리면 .dropdown-menu:hover .menu-content 규칙에 의해 숨겨져 있던 하위 메뉴(Contact Us, Visit Us, About Us)가 아래로 펼쳐지며, 버튼 배경색도 초록색으로 변경됩니다.

핵심 동작 원리 정리
이 드롭다운 메뉴가 작동하는 핵심 원리는 다음과 같습니다.
1. 기본 상태 숨김 처리: .menu-content에 display: none;을 적용해 하위 메뉴를 평소에는 보이지 않게 합니다.
2. 절대 위치 지정: 부모 요소인 .dropdown-menu에 position: relative;, 하위 메뉴에 position: absolute;를 지정해 메뉴가 버튼 아래에 겹쳐 나타나도록 합니다.
3. hover 이벤트 활용: :hover 선택자를 사용해 마우스를 올렸을 때만 display: block;으로 전환하여 메뉴를 표시합니다. JavaScript 없이 순수 CSS만으로 인터랙션이 구현되는 것이 특징입니다.
4. z-index 활용: z-index: 1;을 설정해 드롭다운 메뉴가 다른 콘텐츠 위에 표시되도록 합니다.