リンクエリアをブロック要素全体に広げ、新しいタブで開くキーボードショートカットに対応する
カテゴリー: HTML/CSS/JS
この記事は2017年4月11日に書かれたものです。情報が古い可能性がありますのでご注意ください。
近年、スマホ等で閲覧した際のユーザビリティを考慮して、クリックやタップできるリンク範囲を広げる手法がよく使われています。
- HTML5 で複数のブロック要素を a 要素で囲む方法
- CSS の position プロパティを使って a 要素を直前のブロック要素に被せる方法
- jQuery を使って a 要素を含むブロック要素のクリックに反応させる方法
などありますが、jQuery を使う方法は私もよく使います。
以前から多くのブログ等で紹介されている記述は次のようなものです。
$(function(){
$('div.linkBox').click(function(){
window.location = $(this).find('a').attr('href');
return false;
});
});
ただ、この方法は本来のリンク要素外の範囲では、リンク先を新しいタブで開くキーボードショートカットに反応しません。Windows では [ctrl] キーを、Mac では [command] キーを押しながらクリックすると、リンク先が新しいタブで開くというものです。