首頁  >  文章  >  web前端  >  簡單帶下劃線跟隨效果的CSS3下拉選單特效

簡單帶下劃線跟隨效果的CSS3下拉選單特效

黄舟
黄舟原創
2017-03-20 11:44:102293瀏覽

簡短教學

這是一款使用純CSS3製作的帶下劃線跟隨效果的下拉式選單特效。此下拉式選單透過CSS3 transform和transition來製作下劃線跟隨效果和下拉式選單效果。

使用方法

 HTML結構

此下拉式選單使用

<nav>
  <ul id="main">
    <li>主页</li>
    <li>关于我们</li>
    <li>项目分类
      <ul class="drop">
        <p>
        <li>scss</li>
        <li>jquery</li>
        <li>html</li>
        </p>
      </ul>
    </li>
    <li>联系我们</li>
    <p id="marker"></p>
  </ul>
</nav>

CSS樣式

整個選單ul#mian的定位方式採用相對定位方式。 display顯示為內嵌區塊級元素。選單項目透過padding來設定尺寸,並設定最小寬度min-width為120像素。

#main {
  position: relative;
  list-style: none;
  background: #6BBE92;
  font-weight: 400;
  font-size: 0;
  text-transform: uppercase;
  display: inline-block;
  padding: 0;
  margin: 50px auto;
}
#main li {
  font-size: 0.8rem;
  display: inline-block;
  position: relative;
  padding: 15px 20px;
  cursor: pointer;
  z-index: 5;
  min-width: 120px;
}
li {
  margin: 0;
}

在HTML結構中,ul.drop是下拉式選單元件。它的定位方式採用絕對定位。它裡面的p元素使用translate函數在Y軸上移動-100%,使它隱藏起來(.drop上使用了overflow:hidden)。

.drop {
  overflow: hidden;
  list-style: none;
  position: absolute;
  padding: 0;
  width: 100%;
  left: 0;
  top: 48px;
}
.drop p {
  -webkit-transform: translate(0, -100%);
  -moz-transform: translate(0, -100%);
  -ms-transform: translate(0, -100%);
  transform: translate(0, -100%);
  -webkit-transition: all 0.5s 0.1s;
  -moz-transition: all 0.5s 0.1s;
  -ms-transition: all 0.5s 0.1s;
  transition: all 0.5s 0.1s;
  position: relative;
}
.drop li {
  display: block;
  padding: 0;
  width: 100%;
  background: #3E8760 !important;
}

#marker是底線元素。它也使用絕對定位。並為所有動畫設定了0.35秒的動畫轉場效果。

#marker {
  height: 6px;
  background: #3E8760 !important;
  position: absolute;
  bottom: 0;
  width: 120px;
  z-index: 2;
  -webkit-transition: all 0.35s;
  -moz-transition: all 0.35s;
  -ms-transition: all 0.35s;
  transition: all 0.35s;
}

在滑鼠滑過選單項目#main li元素時,根據nth-child來判斷目前滑鼠滑過哪個選單項目。然後將該選單項目中的子選單的Y軸位置恢復為0,顯示下拉式選單,同時根據不同的選單項目來設定translate函數的X方向移動值來移動下劃線。

#main li:nth-child(1):hover ul p {
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
#main li:nth-child(1):hover ~ #marker {
  -webkit-transform: translate(0px, 0);
  -moz-transform: translate(0px, 0);
  -ms-transform: translate(0px, 0);
  transform: translate(0px, 0);
}
 
#main li:nth-child(2):hover ul p {
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
#main li:nth-child(2):hover ~ #marker {
  -webkit-transform: translate(120px, 0);
  -moz-transform: translate(120px, 0);
  -ms-transform: translate(120px, 0);
  transform: translate(120px, 0);
}
 
#main li:nth-child(3):hover ul p {
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
#main li:nth-child(3):hover ~ #marker {
  -webkit-transform: translate(240px, 0);
  -moz-transform: translate(240px, 0);
  -ms-transform: translate(240px, 0);
  transform: translate(240px, 0);
}
 
#main li:nth-child(4):hover ul p {
  -webkit-transform: translate(0, 0);
  -moz-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
}
#main li:nth-child(4):hover ~ #marker {
  -webkit-transform: translate(360px, 0);
  -moz-transform: translate(360px, 0);
  -ms-transform: translate(360px, 0);
  transform: translate(360px, 0);
}

以上就是簡單帶底線跟隨效果的CSS3下拉選單特效的內容,更多相關內容請關注PHP中文網(www.php.cn)!

相關文章:

CSS下拉選單簡單製作方法介紹

CSS 下拉選單

CSS 下拉選單詳解

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn