ホームページ >ウェブフロントエンド >CSSチュートリアル >下線フォロー効果を備えたシンプルな CSS3 ドロップダウン メニュー効果

下線フォロー効果を備えたシンプルな CSS3 ドロップダウン メニュー効果

黄舟
黄舟オリジナル
2017-03-20 11:44:102543ブラウズ

簡単なチュートリアル

これは、純粋な CSS3 を使用して作成された、下線付きのドロップダウン メニュー効果です。ドロップダウン メニューでは、CSS3 変換とトランジションを使用して、下線フォロー効果とドロップダウン メニュー効果を作成します。

使用法

HTML 構造

このドロップダウン メニューは、順序なしリストをラップするために c787b9a589a3ece771e842a6176cf8e9 要素を使用します。

<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 はインラインのブロックレベル要素として表示されます。メニュー項目のサイズはパディングを使用して決定され、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% 移動し、非表示にします (overflow: hidden は .drop で使用されます)。

.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 に戻し、ドロップダウン メニューを表示し、平行移動関数の 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 中国語 Web サイト (m.sbmmt.com) に注目してください。

関連記事:

CSSドロップダウンメニューの簡単な作り方紹介

CSSドロップダウンメニュー

CSSドロップダウンメニューの詳しい解説

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。