ボックス内すべてのリンクって、わりかし要望あると思いませんか?
でも普通のやりかたじゃぁダメなんですよねぇ~
CSSとHTMLタグでがんばってコーディングしちゃうと、できたとしてもマークアップ的にはNGになってしまう。。
もっといいやり方ないんかな?と探していると、やっぱりありました。
インターネットってすばらしいですね?
ボックス全体をリンクにしたい

(上記の方法はJavascriptを使用します。)
作者さまありがとうございます。
元ネタはほかの方ですが、私はJqueryを使用する「Red様」のコードで実装してみました。
まずHTMLのheadの中に以下を加えます。
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
<!--
$(document).ready(function() {
var linkboxes = $(".linkbox");
for (var i=0; i<linkboxes.length; i++){
var readmores = $("p.readmore");
for (var j=0; j<readmores.length; j++){
$(".linkbox").click(function() {
var anchorTags = this.getElementsByTagName("a");
window.location = anchorTags[0].href;
});
}
}
$("p.readmore").addClass("none");
$(".linkbox").hover(function(){
$(this).addClass("box_hover");
},
function(){
$(this).removeClass("box_hover");
});
});
-->
</script>
次にCSS側でボックスの装飾をします。
上のJavascript内でボックスのクラスは「linkbox」
リンク先が記させたpタグのクラスは「readmore」
ボックス上にHoverさせた時は「box_hover」
となっているので、それを使って装飾・・・・
.linkbox{
background:url(../images/menu_btn_bg.jpg) repeat-x bottom #e4fbd9;
color:#333;
padding:10px 10px 0;
margin:0 0 15px;
border:1px solid #ccc;
border-bottom:1px solid #999;
border-right:1px solid #999;
width:580px;
}
.box_hover{
background:#eeeeee;
cursor:pointer;
}
.none{
text-indent:-9999px;
height:0px;
overflow:hidden;
}
.linkbox h5{
color:#3c2f13;
font-size:1.8em;
margin:0 0 5px;
padding:0;
font-weight:bold;
.linkbox p{
letter-spacing:0.01em;
}
.linkbox p.floatL{
float:left;
margin:0 20px 0 0;
padding:0;
}
で実際のHTMLコードはこんな感じになります。
<div class="linkbox">
<p class="floatL"><img src="images/noimg_s.jpg" alt="no-image" width="120" height="80" /></p>
<h5>Nail</h5>
<p>内容が入ります。内容が入ります。内容が入ります。内容が入ります。内容が入ります。内容が入ります。</p>
<p class="readmore Clear"><a href="#">リンクはこちら</a></p>
</div>
見事!マウスオーバーもきれいに決まり、ソースもきれい。
Javascriptを切っている方は、
<p class="readmore Clear"><a href="#">リンクはこちら</a></p>
の部分が表示され、ここからリンク先に飛べる仕組みです。
ボックス全体にかけているリンクは切れますが、表示も大幅に崩れることがなく、リンク先も死にません。




[...] 以前 [Cording] Divなどで囲ったボックス内すべてをリンク先として指定したい! という記事を書いたのですが、Javascriptを使用することと、IEが未対応なことで仕事では使いにくいテクニ [...]