여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. How To - 메가 메뉴
How To – 메가 메뉴
4주전 작성
1개월전 수정

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 클래스는 드롭다운 메뉴 내에서 서로 옆에 떠 있는 세 개의 열을 만드는 데 사용된다(다른 카테고리를 표시하는 데 사용된다).

참고
Mingg`s Diary
밍구
공부 목적 블로그