クルーデザイン

Webの勉強をしよう!Web制作の技術やサービス情報を発信します。

jQuery

jQuery ブロックレベル要素をリンクにしたい(aタグで囲まない)

投稿日:2017年12月19日 更新日:

インライン要素をブロックレベル要素で囲ってはいけないというHTMLの文法規約があります。
そのため、divで作ったグローバルメニューなどをaタグで囲むことができません。
※実際は動作する場合もありますが、「特定のブラウザで動作しない」「ブラウザのバージョンアップで動作しなくなった」などの不具合が予想されます。

次のようなHTMLはNGとなります。

divはブロックレベル要素であるため、インライン要素であるaタグで囲ってはいけません。

どうしてもブロックレベル要素をリンクの様に扱いたい場合は、少し複雑なCSSを記述する必要があります。
親要素のpositionを設定して、aタグの横幅を100%にして・・・とかなり面倒です。

今回はCSSでは無く、jQueryを利用してブロックレベル要素をリンクにしたいと思います。

結論から言えば、aタグを利用せずに画面の遷移をjQueryで行います。
ブロックレベル要素がクリックされたら、指定したURLへ移動するという処理をjQueryで作成するイメージです。

HTML(ブロックレベル要素をリンクにしたい(aタグで囲まない))

リンクにしたいブロックレベル要素に「menu-item」というクラスを追加します。

次に「data-url」という属性と値を付加します。
値には画面遷移したURLを記述します。

jQuery側では上記の2つを使って「menu-item」がクリックされたら「data-url」の値のURLに画面遷移する、という処理を作ります。

スクリプト(ブロックレベル要素をリンクにしたい(aタグで囲まない))

[ 2行目 ]
「menu-item」がクリックされた時のイベントとして記載。

[ 3行目 ]

クリックされた「menu-item」の「data-url」に入っている値の画面に遷移する。

 

以上、ブロックレベル要素をリンクにする方法は、いくつかあると思いますが、今回のjQueryを使う方法が一番簡単かつ確実だと思います。
良ければ試してみてくださいね。

-jQuery

執筆者:

関連記事

jQuery アコーディオンメニューを自作サンプル(slideToggle)

クリックすれば開閉される「アコーディオンメニュー」は良く使うと思います。 プラグインも多く出ており簡単に実装することができますが、プラグインだとデザインを変更する時に苦労したりします。 プラグインから …

jQuery クラスの追加・クラスの削除 クリックで色が付くメニュー(addClass・removeClass)

jQueryを使えば、タグにクラスを追加したり削除したりすることが簡単にできます。 今回はクリックされた「li」にクラスを追加して、クリックで色が付くメニューを作成してみようと思います。 こんなイメー …

jQuery 絞り込み検索サンプル(正規表現)

jQueryを利用すれば、絞り込み検索機能も簡単に作成できます。 絞り込み検索機能とは、テキストボックスに入力した値とマッチするものを表示・マッチしないものを非表示にするような機能です。 以下のような …

CSS Animate.css の基本サンプル(通常・クリックされた・マウスオーバー)

テキストだけのサイトだと「さびしい」「少しだけ動きが欲しい」という場合には「Animate.css」が便利です。 Animate.cssは、あらかじめ定義されているクラスを追加するだけで要素にアニメー …

jQuery 文字の大きさ(フォントサイズ)の変更(小中大)

jQueryで文字サイズの大きさを変更するボタンを作ってみようと思います。 行政のサイトで良く見かけますよね。 これもjQueryで簡単に実現できます。 昔からある機能なので古いイメージがありますが、 …


comment

メールアドレスが公開されることはありません。