当サイトは広告が含まれています

【Cocoon】ホバー時にグローバルメニューにアンダーラインを出す方法

Cocoon ホバー時にメニューにアンダーラインを出す方法

こんにちは、ikuzo(いくぞう)です。

今回は、Cocoonのグローバルナビメニューにマウスオーバー(ホバー)すると、

メニューの下にアンダーラインが出る方法を紹介します。

ホバー時にメニューにアンダーラインが出てくる

グローバルナビメニューの設定方法やカスタマイズのやり方はこちらの記事をご覧下さい。

【Cocoon】グローバルナビメニューの設定方法とカスタマイズ
Cocoonを使い始めたばかりの方は、「ヘッダー部分にメニューが表示されないのはなぜ?」なんて困ったりしていませんか?Cocoonのデフォルト(初期状態)では、グローバルメニュー(ヘッダーメニュー)はありません。グローバルメニューは自分で作...
スポンサーリンク

メニューにアンダーラインを出す前の下準備

グローバルメニューにアンダーラインを出す前に下準備として次の2つをやり方を説明します。

この2つは必要があれば行って下さい。

1, メニュー項目の左右の余白を均等にする

2, ホバー時にメニューの色が薄くなるのをやめる

メニュー項目の左右の余白を均等にする

メニュー項目の余白を均等にする設定は「Cocoon 設定」の「ヘッダー」タブで行います。

「Cocoon 設定」の「ヘッダー」タブ

下の方にある「メニュー幅をテキストに合わせる」に チェックを入れて「変更をまとめて保存」を押します。

「メニュー幅をテキストに合わせる」を押す

これでメニュー項目の間隔が均等になります。

余白部分を大きくしたり小さくしたりするには、こちらのCSSを使います。

/*グローバルメニュー メニュー項目の左右の余白*/
#navi .navi-in>ul>li>a{
padding: 0 2.0em;
}

Cocoonのデフォルトは“1.4em”ですが、上のCSSを使うと余白が“2.0em”に変わります

メニュー項目の両側の余白を2文字分に設定

メニュー項目の左右の余白を1.4emから2.0emへ変更

“2.0”の部分は、お好みで変更して下さい。

ホバー時にメニューの色が薄くなるのをやめる

Cocoonのグローバルメニューはホバー時に項目の色が薄くなります。

マウスオーバーしたメニュー項目の色が薄くなる

メニューにアンダーラインを出すので、色を薄くする必要はないという方は次のCSSを使って下さい。

/*ホバー時にメニューの色が薄くなるのをやめる*/
#navi .navi-in a:hover {
    background-color: rgb(255 255 255 / 0);
}

上のCSSを使うとホバー時でも色が薄くなりません。

ホバー時メニュー項目の色が薄くならないようにした

スポンサーリンク

ホバー時にメニューにアンダーラインが出てくるCSS

そしてこちらがホバー時にアンダーラインが出てくるCSSです。

/*ホバー時にメニューにアンダーラインを出す*/
#navi .navi-in a:after{
position: absolute;/*線の位置を絶対配置に*/
content: "";/*文字はなし*/
left: 0px;/*線の位置*/
bottom: 0;/*線の位置*/
height: 2px;/*線の高さ*/
width: 100%;/*幅いっぱいに線を引く*/
background: #fcf404;/*線の色*/
transform: scale(0,1);/*ホバー前は線を消す*/
transition: 0.3s;/*線が0→100%になるまでの秒数*/
}

#navi .navi-in a:hover:after{
transform: scale(1);/*マウスオーバー後、線を100%出す*/
}

上記CSSで、マウスオーバー時に真ん中からアンダーラインが出てきます。

ホバー時にメニューにアンダーラインが出てくる

「線の高さ」「線の色」「秒数」は、お好みで変更して下さい。

アンダーラインを左から線を出したい場合はこちらのCSSを使って下さい。

/*ホバー時に左からアンダーラインを出す*/
#navi .navi-in a:after{
position: absolute;/*線の位置を絶対配置に*/
content: "";/*文字はなし*/
left: 0px;/*線の位置*/
bottom: 0px;/*線の位置*/
height: 2px;/*線の高さ*/
width: 100%;/*幅いっぱいに線を引く*/
background: #fcf404;/*線の色*/
transform: scale(0,1);/*ホバー前は線を消す*/
transition: 0.3s;/*線が0→100%になるまでの秒数*/
transform-origin: left;/*線を左側から出す*/
}

#navi .navi-in a:hover:after{
transform: scale(1);/*マウスオーバー後、線を100%出す*/
}
スポンサーリンク

選択中の項目にアンダーラインを出したままにするCSS

先ほどのCSSは、ホバー時のみアンダーライン出てきます。

それとは別に、選択中のメニュー項目にアンダーラインを出したままにするCSSがこちらです。

/*選択中のメニュー項目にアンダーライン*/
.current-menu-item:not(:first-child):after{
position: absolute;/*線の位置を絶対配置に*/
content: "";/*文字はなし*/
left: 0px;/*線の位置*/
bottom: 0px;/*線の位置*/
height: 2px;/*線の高さ*/
width: 100%;/*幅いっぱいに線を引く*/
background: #fcf404;/*線の色*/
}

選択中のメニュー項目はアンダーラインが出たままになる

一番左の項目(ここでは“ホーム”)だけはアンダーラインが出たままにならないようにしてあります。

出したい場合は “not(:first-child):” の部分を削除して下さい。

今回は以上です。

コメント