我正在尝试构建CSS,其中<a>
标记覆盖整个<div>
块,以便可以点击<div>
上的任何位置。
以下是最终div的外观(图像为64×64px):
这是HTML:
<div>
<img src="" alt=""/>
<h3><a>On The Beach</a> <span class="exclusive">Exclusive</span></h3>
<span class="details">Save 10% off all package holidays</span>
</div>
任何CSS大师的帮助?
答案 0 :(得分:8)
可能你可以这样写:
<a href="#">
<img src="" alt=""/>
<h3><span>On The Beach</span> <span class="exclusive">Exclusive</span></h3>
<span class="details">Save 10% off all package holidays</span>
</a>
<强> CSS 强>
a{
display:block;
}
注意:根据html5,您可以在<a>
标记内定义块元素
答案 1 :(得分:2)
如果你想锚定覆盖整个块,你的HTML应该反映出来。虽然块级锚点是XHTML2 / HTML5的新概念,但它们几乎适用于所有现代浏览器(甚至是IE 7)。
用锚点封装所有DIV的内容:
<div>
<a href="#nohref">
<img src="" alt="" />
<h3>On The Beach <span class="exclusive">Exclusive</span></h3>
<span class="details">Save 10% off all package holidays</span>
</a>
</div>
div a {
display: block;
}
另请参阅:http://html5doctor.com/block-level-links-in-html-5/
有光泽,但不是新的
这项技术的另一个非常有趣的事实是,这并不是新的:你现在可以做到。 [...]这是关于HTML 5的一个有趣的事情 - 它记录了现有的浏览器行为。由于浏览器已经处理了块级元素周围的包装链接,并且有一个明显的用例,因此没有理由人为地将结构保持为无效。
答案 2 :(得分:1)
用锚标签包裹
<div>
<a href="#" class="cont-wrap-link">
<img src="" alt=""/>
<h3><a>On The Beach</a> <span class="exclusive">Exclusive</span></h3>
<span class="details">Save 10% off all package holidays</span>
<a>
</div>
<强> CSS 强>
div a.cont-wrap-link
{padding:0px; margin:0px;
display:block;
text-decoration:none;
}
答案 3 :(得分:1)
答案 4 :(得分:1)
看到您的doctype是HTML5,您可以将整个块包装在一个锚中:
<a href="yourURL">
<div>
<img src="" alt=""/>
<h3><a>On The Beach</a> <span class="exclusive">Exclusive</span></h3>
<span class="details">Save 10% off all package holidays</span>
</div>
</a>
不需要任何JS:)
答案 5 :(得分:0)
虽然这可能是用一些hacky CSS完成的,但我相信JS(jQuery)在这种情况下更容易:
$('#the-div').click(function () {
$(this).find('a').eq(0).click();
});
或类似的东西:
var theDiv = document.getElementByID('the-div');
theDiv.onclick = function () {
window.location = theDiv.getElementsByTagName('a')[0].href;
};
答案 6 :(得分:0)
我建议将onclick="location.href='http://google.com';" style="cursor:pointer;"
添加到div标签。