Computer >> 컴퓨터 >  >> 프로그래밍 >> CSS

CSS만으로 드롭다운 내비게이션 바 만드는 방법 완벽 가이드

웹사이트에서 여러 메뉴를 깔끔하게 정리하고 싶다면 드롭다운 내비게이션 바가 효과적인 해결책입니다. 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' 드롭다운 버튼이 배치된 내비게이션 바가 화면에 나타납니다.

CSS만으로 드롭다운 내비게이션 바 만드는 방법 완벽 가이드

마우스 오버 시 동작

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

CSS만으로 드롭다운 내비게이션 바 만드는 방법 완벽 가이드

핵심 동작 원리 정리

이 드롭다운 메뉴가 작동하는 핵심 원리는 다음과 같습니다.

1. 기본 상태 숨김 처리: .menu-contentdisplay: none;을 적용해 하위 메뉴를 평소에는 보이지 않게 합니다.

2. 절대 위치 지정: 부모 요소인 .dropdown-menuposition: relative;, 하위 메뉴에 position: absolute;를 지정해 메뉴가 버튼 아래에 겹쳐 나타나도록 합니다.

3. hover 이벤트 활용: :hover 선택자를 사용해 마우스를 올렸을 때만 display: block;으로 전환하여 메뉴를 표시합니다. JavaScript 없이 순수 CSS만으로 인터랙션이 구현되는 것이 특징입니다.

4. z-index 활용: z-index: 1;을 설정해 드롭다운 메뉴가 다른 콘텐츠 위에 표시되도록 합니다.