【发布时间】:2016-04-11 19:39:32
【问题描述】:
我有一个丰富的 SPA 应用程序,其中包含一些“材料设计卡”(可能不是严格意义上的),例如:
我想知道“a”html标签是否适合处理点击卡片以打开全尺寸内容。
如您所见,它是一个丰富的小部件,您可以在其上进行交互(如喜欢/评论/标签按钮)。我可能不得不在这张卡片内显示一个链接(实际显示的内容的“来源”,例如nytimes.com)
当用户点击(或触摸,因为它也是一个 Cordova/移动应用程序)卡片时,我们应该转到卡片项目的 url 并全屏查看卡片项目(除非点击是在卡片按钮上。 ..)
所以我考虑使用链接(标签)作为卡片的包装,但它seems illegal 因为我已经在卡片内有源链接:
您不能在 A 元素中包含交互式内容。交互式内容包括锚标记。
那么,我应该如何解决这个用例?
需要注意的一个非常重要的事情是,我想保留链接附带的一些默认值,包括使用中键单击/ctrl 在新选项卡中打开或悬停时显示链接的事实在 Chrome 的底部...我知道我可以使用 history.push 但这似乎很烦人,甚至不可能在纯 JS 中重新实现所有这些默认值...
【问题讨论】:
-
IMO,最好只将标题包装在锚中。特别是如果描述文本内容或可以内容活动元素。
-
@DávidHorváth 这是一个好主意,甚至没有想过这个!我只能在“测试”(即标题)周围添加一个链接,但在这种情况下,点击区域会变得非常小。几乎解决了问题但还不理想
-
我同意@Dávid 的评论;如果这种行为出乎用户意料之外,这可能不是最好的主意。无论如何,我在下面提供了一个可能的解决方案。
标签: javascript html hyperlink material-design