[HTML]多層導覽列(二層與三層下拉選單)

文、意如


<html>
<head>
  <title>多層導覽列</title>
  <style>
   /* 導覽列區塊設定 */
nav {
  background-color: #333;     /* 導覽列背景為深灰色 */
  padding: 10px;              /* 四周內距為 10px */
}

/* 取消 ul 的預設項目符號、外距與內距,並排呈現 li */
nav ul {
  list-style: none;           /* 移除項目符號 (•) */
  margin: 0;                  /* 取消外距 */
  padding: 0;                 /* 取消內距 */
  display: flex;             /* 使用彈性排版,讓第一層選單橫向排列 */
}

/* 每個選單項目設定為相對位置,方便絕對定位子選單 */
nav li {
  position: relative;         /* 為了讓內部的 ul 可以絕對定位 */
}

/* 第一層選單項目之間的間距 */
nav > ul > li {
  margin-right: 20px;         /* 右側間距 20px,讓選單不擠在一起 */
}

/* 導覽列中的連結樣式 */
nav a {
  text-decoration: none;      /* 取消超連結底線 */
  color: white;               /* 文字顏色為白色 */
  padding: 8px 12px;          /* 內距:上下 8px、左右 12px */
  display: block;             /* 區塊顯示,讓整塊區域都能點擊 */
}

/* 滑鼠滑過時的樣式 */
nav a:hover {
  background-color: #555;     /* 滑過時背景變成淺灰色 */
  border-radius: 4px;         /* 邊角圓弧化 4px */
}

/* 第二層選單設定 */
li ul {
  display: none;              /* 預設不顯示子選單 */
  position: absolute;         /* 絕對定位,使其相對於父層出現 */
  top: 100%;                  /* 子選單出現在父項目正下方 */
  left: 0;                    /* 與左側對齊 */
  background-color: #444;     /* 背景色深一點,區分層級 */
  min-width: 150px;           /* 設定最小寬度 */
}

/* 當滑鼠移到 li 上時,顯示對應的子選單 */
li:hover > ul {
  display: block;             /* 滑鼠移入時顯示子選單 */
}

/* 第三層選單的定位(從第二層 ul 再展開一層) */
li ul li ul {
  top: 0;                     /* 從第二層的頂端開始 */
  left: 100%;                /* 向右偏移,使其出現在旁邊 */
}
  </style>
</head>
<body>

  <nav>
    <ul>
      <li><a href="#">首頁</a></li>
      <li>
        <a href="#">產品</a>
        <ul>
          <li>
            <a href="#">電子產品</a>
            <ul>
              <li><a href="#">手機</a></li>
              <li><a href="#">筆電</a></li>
            </ul>
          </li>
          <li><a href="#">家電</a></li>
        </ul>
      </li>
      <li><a href="#">關於我們</a></li>
      <li><a href="#">聯絡</a></li>
    </ul>
  </nav>
</body>
</html>
選擇器適用時機
nav > ul > li只要針對第一層選單調整樣式
nav li要統一所有層級的選單項目樣式
li:hover > ul當滑鼠滑過項目時,顯示下層選單
挑戰:三層選單 + 自訂樣式

改變背景色與 hover 顏色

自行設計一組三層選單(例如「學校 → 系所 → 科目」)

 

Yiru@Studio - 關於我 - 意如