ホームページ制作 オフィスオバタ

CSSだけでリンクを無効にしてみた

ホームページが一般的になって最も有効に使われたタグがあります。
それは「リンクタグ」です。

他のページへジャンプするだけの機能ですが、webという構造の根幹をなしているといえます。

ただ、今回リンクの有効/無効を切り返したい事象がありました。
それは「電話番号のリンク」です。

電話番号リンクはスマホで表示した際にタップすると、直電することができます。
ただ、PCで表示している場合は電話できません。

つまり、PCの時はリンクを無効にして、スマホの時はリンクを有効にしたいのです。

今までは表示/非表示切り替えでやっていました

いままでは、リンクありとリンクなしの2種類のコーディングを用意して、PCとスマホ表示時に「表示/非表示切り替え」をすることで実現していました。

これはこれでそれなりに動作します。
ただ、もっとスマートな方法がないものかと思いました。

ググって調べたら、最適解な方法がありました。

CSS1行追加するだけでリンクを無効にできました

まずは実際にできたものをご覧ください。

上のリンクは通常通りですが、下のリンクはクリックしても反応しません。
CSSでリンクを無効にしています。

具体的には次のように記述しています。

具体的には下のリンクには次のようなCSSを記述しています。

.nolink a
{
	pointer-events: none;
}

たった1行追加するだけでリンクが無効になりました。
あとはレスポンシブ記述に合わせて、リンクの有効・無効をスイッチすれば切り替えができるようになります。

ただ、ここで疑問がわきます。
pointer-events ってなに?

pointer-eventsとは

ググるといっぱい出てきました。
簡単にいうと、「マウスポインターの有効範囲設定」というものでした。
細かく設定ができるのですが、ぱっと見「ポインターの有効/無効」を設定できるものでした。

まさに、今回のような用途向けの記述です。

今回は思ったより簡単に対応できました

最初はJqueryを駆使する必要があるかとも思いましたが、CSSだけで対応できました。
レスポンシブ記述をしていれば、PCはリンクなし、スマホはリンクありというスイッチも、PC用のCSSにのみリンク無効記述を入れておけば実現できました。

今回調べたきっかけは「もっと上手いやり方がないものか?」
と思ったのがきっかけでした。

普段対応方法が確立している場合でも、向上させる方法がないかと考えることで、より品質が高くなるものだと実感いたしました。

モバイルバージョンを終了