메가 메뉴 (Mega menu)

메가 메뉴 (Mega menu)

사용자가 네비게이션 메뉴의 요소 위로 마우스를 이동하면 모든 하위 메뉴가 함께 표시되는 드랍다운(Drop down) 메뉴를 만듭니다:

메가 메뉴 만들기

Step 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=”content-content”>)를 사용하여 드롭다운 메뉴를 만들고 그리드(grid)를 추가하고 그리드 내부에 드롭다운 링크를 추가합니다.
<div class=”content”> 요소를 버튼과 컨테이너 요소(<div class=”content”>로 감싸 CSS로 드롭다운 메뉴를 적절하게 배치합니다.
Step 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 클래스는 드롭다운 메뉴 내에서 서로 옆에 부동하는 세 개의 열을 만드는 데 사용됩니다(다른 범주를 표시하기 위해).