ホームページ > 記事 > ウェブフロントエンド > 下線フォロー効果を備えたシンプルな CSS3 ドロップダウン メニュー効果
簡単なチュートリアル
これは、純粋な 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 サイト (www.php.cn) に注目してください。
関連記事: