css實現2級導航菜單

本文用純CCS實現了一個具有特效的二級導航欄,並詳細註釋了CSS的實現方法。

演示地址:https://tympanus.net/codrops-playground/SaraSoueidan/RETvk1HZ/editor

<!--HTML-->
<div class="container">
  <ul class="menu">
    <li>Home</li>
    <li>Blog</li>
    <li class="has-submenu">About 
      <ul>
        <li>Who we Are</li>
        <li>What We Do</li>
      </ul>
    </li>
    <li>Pricing</li>
    <li class="has-submenu">Contact 
      <ul>
        <li>Email</li>
        <li>Phone</li>
      </ul>
    </li>
  </ul>
</div>
/*css*/
body {
  background-color: #F5F5F5;
  color: #555;
  font-size: 1.1em;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.container {
  margin: 40px auto;
  max-width: 700px;
  text-align: center;
}

/*第一層的導航欄由此ul組成*/
ul {
  text-align: left;
  display: inline-block;
  list-style: none;
  padding-left: 0;
}

/*這裏定義了導航欄菜單的樣式*/
.menu li {
  float: left;
  padding: .65em 1em;/*用padding來撐出大小*/
  border: 1px solid #eee;/*用白色的描邊來從視覺上將每個li隔開(實際上是連在一起沒有間隔的)*/
  background-color: black;
  color: white;
  cursor: pointer;/*鼠標移動到菜單上會變成小手*/
  -webkit-transition: all .3s;/*動畫的過度時間*/
  transition: all .3s;/*動畫的過度時間*/
  position: relative;/*相對定位(用於二級菜單的定位)*/
}

/*當鼠標選中菜單的時候會變色*/
.menu li:hover {
  background-color: deepPink;
}

/*這裏定義了二級菜單出現的位置和寬度大小*/
li ul {
  position: absolute;
  top: 100%;
  left: 0%;
  width: 150px;
  display: none;/*二級菜單默認是不可見的*/
  z-index: 1;
}

/*這裏定義了二級菜單的子項的寬度*/
li ul li {
  width: 100%;
}

li:hover ul {
  display: block;/*當鼠標放到一級菜單上的li時爲li下的ul標籤也就是二級菜單附加類,使其能夠顯示*/
}

/*用僞類:after 在導航欄菜單加載完成之後,在含有has-submenu這個類的li標籤的內容後加上以下內容*/
li.has-submenu:after {
  content: "\25bc";/*這是一個倒三角▼*/
  font-size: .7em;/*設置了三角的大小*/
  padding-left: 5px;
  vertical-align: middle;/*設置元素的垂直對齊方式爲垂直居中*/
}

/*當二級菜單被觸發顯示後,將倒三角替換成正三角*/
li.has-submenu:hover:after {
  content: "\25b2";
}

HTML特殊字符代碼大全: https://blog.csdn.net/realghost/article/details/11613649
本文引用自:https://tympanus.net/codrops/css_reference/after/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章