2020 年 11 月更新:我认为 这篇文章中的方法 4 是实现此目标的最佳方法。<div>
(或任何包装元素)保持语义和可访问性,同时在整个区域内都是“可点击的”。它不会破坏文本选择,并尊重其他“嵌套”的交互式元素。
<div>
元素是通用的,没有语义的元素。我们在 CSS 中经常使用它们,因为它们为我们提供了一个样式挂钩,而不会赋予任何其他含义。它们为您提供了各种出色的定位功能,并为您的 HTML 提供结构。当然,您可以在<div>
内放置链接,但有时您只想让整个 div 作为一个链接可点击。没问题,以下是如何实现:
<div onclick="location.href='YOUR-URL-HERE';" style="cursor: pointer;"></div>
当访问者将鼠标悬停在 DIV 上时,光标样式参数会将光标更改为默认的指针光标,这是一种很好的视觉提示,表明它可点击。
2011 年 5 月 12 日更新
请参阅上面的更新
内联 JavaScript 比 2007 年的时候要逊色得多(如果它曾经流行过)。通过我们在单独的 JavaScript 中应用的事件处理程序,以更语义化和更易访问的方式附加功能。如果我们使用 jQuery,我们可以执行以下操作:
<div>
<h3>A bunch of</h3>
<a href="http://google.com">stuff in here</a>
</div>
$(document).delegate("div", "click", function() {
window.location = $(this).find("a").attr("href");
});
老兄。
这有效,但你真的应该将你的 js 从 html 中抽象出来。
你可能可以给 div 一个“class”为“link”和一个“rel”等于你想导航到的 url,然后使用 jQuery 通过 rel 属性设置点击事件。
前往 Google…
/* css */
div.link {
cursor: pointer;
text-decoration: underline;
}
// javascript(使用 jQuery)
$(“div.link”).click(function(){
document.location.href = $(this).attr(“rel”);
});
虽然这不会在状态栏中显示 url,就像锚链接那样。
–Liam Goodacre
哦,真奇怪,我的 html 没有显示出来…
你可能可以给 div 一个“class”为“link”和一个“rel”等于你想导航到的 url,然后使用 jQuery 通过 rel 属性设置点击事件。
<div class=”link” rel=”http://www.google.com/”>前往 Google…</div>
/* css */
div.link {
cursor: pointer;
text-decoration: underline;
}
// javascript(使用 jQuery)
$(†div.link†).click(function(){
document.location.href = $(this).attr(†rel†);
});
虽然这不会在状态栏中显示 url,就像锚链接那样。
好多了 :D
–Liam Goodacre
我认为重要的是要说你应该还提供一个非 JavaScript 方式来导航到目标,以实现可访问性——无论是针对非 JavaScript 用户,还是针对使用纯文本浏览器的用户。可以通过在你的 div 内使用 href 标签来实现,无论是在文本还是图像中。
一些文本
print(“代码示例”);