![](https://maz.kr/wp-content/uploads/2024/04/howto-css-mega-menu-thumbnail.png)
w3.css
메가 메뉴
메가 메뉴(탐색 모음의 전체 너비 드롭다운 메뉴)를 만드는 방법을 알아보자.
메가 메뉴 만들기
사용자가 탐색 모음 내부의 요소 위로 마우스를 이동할 때 나타나는 드롭다운 메뉴를 만다.
1단계) HTML 추가
<div class="navbar"> <a href="#home">Home</a> <a href="#news">News</a> <div class="dropdown"> <button class="dropbtn">Dropdown <i class="fa fa-caret-down"></i> </button> <div class="dropdown-content"> <div class="header"> <h2>Mega Menu</h2> </div> <div class="row"> <div class="column"> <h3>Category 1</h3> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> <div class="column"> <h3>Category 2</h3> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> <div class="column"> <h3>Category 3</h3> <a href="#">Link 1</a> <a href="#">Link 2</a> <a href="#">Link 3</a> </div> </div> </div> </div> </div>
드롭다운 메뉴를 열려면 <button>, <a> 또는 <p> 요소와 같은 요소를 사용한다다.
드롭다운 메뉴를 생성하고 그리드(열)를 추가하고 그리드 내부에 드롭다운 링크를 추가하려면 컨테이너 요소(예: <div class=”dropdown-content”>)를 사용한다.
CSS를 사용하여 드롭다운 메뉴를 올바르게 배치하려면 버튼과 컨테이너 요소 주위에 <div class=”dropdown”> 요소를 래핑한다(<div class=”dropdown-content”>).
2단계) CSS 추가
/* Navbar container */ .navbar { overflow: hidden; background-color: #333; font-family: Arial; } /* Links inside the navbar */ .navbar a { float: left; font-size: 16px; color: white; text-align: center; padding: 14px 16px; text-decoration: none; } /* The dropdown container */ .dropdown { float: left; overflow: hidden; } /* Dropdown button */ .dropdown .dropbtn { font-size: 16px; border: none; outline: none; color: white; padding: 14px 16px; background-color: inherit; font: inherit; /* Important for vertical align on mobile phones */ margin: 0; /* Important for vertical align on mobile phones */ } /* Add a red background color to navbar links on hover */ .navbar a:hover, .dropdown:hover .dropbtn { background-color: red; } /* Dropdown content (hidden by default) */ .dropdown-content { display: none; position: absolute; background-color: #f9f9f9; width: 100%; left: 0; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } /* Mega Menu header, if needed */ .dropdown-content .header { background: red; padding: 16px; color: white; } /* Show the dropdown menu on hover */ .dropdown:hover .dropdown-content { display: block; } /* Create three equal columns that floats next to each other */ .column { float: left; width: 33.33%; padding: 10px; background-color: #ccc; height: 250px; } /* Style links inside the columns */ .column a { float: none; color: black; padding: 16px; text-decoration: none; display: block; text-align: left; } /* Add a background color on hover */ .column a:hover { background-color: #ddd; } /* Clear floats after the columns */ .row:after { content: ""; display: table; clear: both; }
배경 색상, 패딩 등으로 내비게이션 바와 내비게이션 바 링크를 스타일링했다.
배경 색상, 패딩 등으로 드롭다운 버튼을 스타일링했다.
.dropdown-content 클래스는 실제 드롭다운 메뉴를 보유한다.
기본적으로 숨겨져 있으며, 호버(아래 참조)에 표시된다.
드롭다운 버튼 바로 아래에 보이도록 위치시키며, 너비는 100%로 설정하여 전체 화면을 커버한다.
우리는 테두리를 사용하는 대신 상자 그림자 속성을 사용하여 드롭다운 메뉴를 “카드”처럼 보이게 만들었다.
우리는 또한 z-index를 사용하여 드롭다운을 다른 요소들 앞에 배치한다.
:hover 선택기는 사용자가 마우스를 드롭다운 버튼 위로 이동시킬 때 드롭다운 메뉴를 표시하는 데 사용된다.
.column 클래스는 드롭다운 메뉴 내에서 서로 옆에 떠 있는 세 개의 열을 만드는 데 사용된다(다른 카테고리를 표시하는 데 사용된다).