簡單帶底線跟隨效果的CSS3下拉式功能表特效

來源:互聯網
上載者:User
簡要教程

這是一款使用純CSS3製作的帶底線跟隨效果的下拉式功能表特效。該下拉式功能表通過CSS3 transform和transition來製作底線跟隨效果和下拉式功能表效果。

使用方法

HTML結構

該下拉式功能表使用<nav>元素來包裹一個無序列表。

<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下拉式功能表特效的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

相關文章:

CSS下拉式功能表簡單製作方法介紹

CSS 下拉式功能表

CSS 下拉式功能表詳解

  • 相關文章

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.