如何使整个 DIV
成为可点击的超链接。也就是说,我希望实现以下效果:
<div class="myclass" href="example.com">
<div>...</div>
<table><tr>..</tr></table>
....
</div>
每当有人将鼠标悬停在我的类 DIV
上时,我希望整个 DIV
都成为可点击的超链接。
<div onclick="location.href='newurl.html';"> </div>
编辑:针对新窗口
<div onclick="window.open('newurl.html','mywindow');" style="cursor: pointer;"> </div>
cursor: pointer
替代 cursor: hand
。 - bazzilicdiv
添加 position:relative;
,然后给 a
添加 position:absolute; height:100%;
,这样整个 div
区域都会变成可点击区域。 - prodigitalson<a>
是一个内联级元素,只能包含内联级元素。这意味着将 <div>
和/或 <table>
作为 <a>
的子元素是无效的 XHTML。为了解决这个限制,使用内联元素和 CSS 将它们显示为块级元素。请参阅 http://www.cs.sfu.ca/CC/165/common/ref/wdgxhtml10/inline.html 获取内联元素列表。 - Andrew Moore您只需要将光标指定为指针而不是手形,因为指针现在是标准设置。以下是示例页面代码:
<div onclick="location.href='portable-display-stands.html';" id="smallbox">The content of the div here</div>
以及示例CSS:
#smallbox {
cursor: pointer;
}
所以现在使用'onclick'使div成为可点击元素,而您已经使用CSS伪装了手型光标...工作完成,对我来说可行!
这个回答有点晚,但这个问题在搜索结果中出现非常频繁,因此值得认真回答。
基本上,你不应该试图让一个
<a>
标签添加display: block
CSS属性来使其类似于div一样可点击。
这样,你的HTML保持语义有效,并且可以继承超链接的典型浏览器行为。即使javascript被禁用或不加载js资源,它也可以工作。
为什么不这样做呢?
<a href="yoururl.html"><div>...</div></a>
这应该可以很好地工作,并会提示“可点击项目”鼠标光标更改,而前面提到的解决方案不会做到这一点。
另一种选择是使用JavaScript并通过onclick事件进行转发
<div onclick="window.location.href='somewhere...';">...</div>
<a>
元素中放置任何你想要的内容。在这里使用<div>
没有意义。 - SLaks<div />
是一个元素,它应该包含其他元素或信息,<a />
是一个元素,它对这些信息进行“操作”(导航、分页等)。那么当你有<a />
时,为什么还要有一个整个可点击的<div />
呢? - Juraj Blahunka<a>
是一个内联级别元素,只能容纳内联级别元素。这意味着在<a>
中有以<div>
和/或<table>
为子元素是不合法的 XHTML。为了解决这个限制,可以使用内联元素和 CSS 将它们显示为块级元素。请参考 http://www.cs.sfu.ca/CC/165/common/ref/wdgxhtml10/inline.html 查看内联元素列表。 - Andrew Moore<a />
中...还有就是想象一下Google机器人,你认为它能从window.open('example.com', 'wnd');
这样的代码中爬取你的页面吗?这就是火苗的起源... :-D - Juraj Blahunka