div是否有可能像HTML锚标签一样工作?

时间:2018-09-21 02:30:15

标签: javascript html reactjs onclick

我想要一种使块级HTML标签像<a>标签一样的方式。

我已经使用React和React-Router一段时间了,并且倾向于将<div>用于很多组件。因为我将锚定标记包装在块级标记(例如<div>)中不是有效的HTML,所以无法在应用程序中添加浏览器已知的链接。

我的一个主意是将所有组件编写为<span>。可悲的是,这不是我想要的解决方案,因为我也不控制HTML 3rd Party组件。

如何使它成为div或任何其他块级标记,就像锚标记一样,其中悬停显示浏览器底部的链接[CTRL] [LEFT_CLICK]和[MIDDLE_CLICK]打开一个新标签,然后单击更改路线?

不需要React解决方案。

3 个答案:

答案 0 :(得分:0)

我会建议两种方法

使用少量JavaScript

<div onclick="location.href='http://www.thelink.com';" style="cursor:pointer;"></div>

<a>像div一样

a {
    display: block;
}

您可以设置其他内容,例如高度和宽度。

希望这会有所帮助。

答案 1 :(得分:0)

如果有必要,您应该使用<a>而不是<div>

虽然过去不是这种情况,但HTML5允许您将锚点标签包裹在块级元素周围: https://stackoverflow.com/a/1828032/1624862

虽然仍然有一些限制。如果将<a>包装在<span>中,则必须在其中包含内联元素。只有在<a>中也包含块级元素时,才允许使用块级元素。

答案 2 :(得分:0)

您不能将锚标签包裹在div周围,反之亦然也无济于事。

链接

请查看下面的代码沙箱链接。 https://codesandbox.io/s/9z5y52mk8w