【发布时间】:2010-11-25 06:17:56
【问题描述】:
遇到了一个有趣的问题,我被难住了。
基本上,在我们的一个页面上,我们有几个超链接区域。通过使用display:block 设置链接,这些区域不仅可以在有文本的地方点击,而且可以在整个背景中点击。你可以看到这样一个可点击区域的简单示例here。
所以最近的权力要求我在这个区域内添加另一个链接。内部链接将具有与可点击区域不同的目标,并且仅可点击它的即时文本,其余可点击区域将环绕它。您可以在demo 中看到它是如何组合在一起的(黄色位代表内部链接的可点击部分,红色代表外部链接)。 注意:我意识到这看起来是一个非常混乱的实现,但我担心它不在我的掌控之中。
按照设计(并且有充分的理由),我不能像这样简单地嵌套我的 <a> 标签:
<a href="#" class="clickable_area">
<span>RED Background and clickable</span><br/>
<span>RED Background and clickable</span><br/>
<span>RED Background and clickable</span><br/>
<a class="inner_link" href="#">Yellow background and it's own link</a><br/>
</a>
尝试像这样嵌套标签会导致外部链接被</a> 的第一个实例过早关闭,如here 所示。
一种解决方案可能是将内部链接设为 span 元素,然后使用 onclick 事件通过 JavaScript 执行超链接,但我不太了解这种方法,并且真的希望避免使用任何 JavaScript 变通方法。
我已经尝试了一些使用 CSS 等的变通方法,但到目前为止我已经干了。我觉得绝对定位或负边距可能是关键,但我从来都不擅长。
如果有人能提供任何建议,我将不胜感激。
【问题讨论】:
-
这无济于事,但这样的嵌套锚点将是无效的标记,并且可能会导致进一步的问题。我怀疑它可以用 conventional 手段完成,但是 SO 是人类众神的家园。如果可能的话,我还建议重新设计实现(即使用可点击的
div,它可以很容易地以这种方式支持多个链接)(但也要欣赏“权力”的固执)