如何创建一个像链接一样的HTML按钮?

我想创建一个HTML按钮,就像链接一样。 所以,当你点击按钮时,它会重定向到一个页面。 我希望它尽可能地可以访问。

我也喜欢它,所以URL中没有任何额外的字符或参数。

我怎样才能做到这一点?


根据迄今发布的答案,我目前正在这样做:

<form method="get" action="/page2">
    <button type="submit">Continue</button>
</form>

但问题在于,在Safari和Internet Explorer中,它在URL的末尾添加了一个问号字符。 我需要找到一个解决方案,不会在URL的末尾添加任何字符。

还有其他两种解决方案可以做到这一点:使用JavaScript或将链接样式化为按钮。

使用JavaScript:

<button onclick="window.location.href='/page2'">Continue</button>

但是,这显然需要JavaScript,因此屏幕阅读器无法访问。 链接的一点是转到另一页。 所以试图让按钮像链接一样行事是错误的解决方案。 我的建议是,你应该使用一个链接并将其设置为一个按钮。

<a href="/link/to/page2">Continue</a>

HTML

纯HTML方式是将它放在<form>其中您在action属性中指定了所需的目标URL。

<form action="http://google.com">
    <input type="submit" value="Go to Google" />
</form>

如有必要,请设置CSS display: inline; 在形式上保持与周围文本的流动。 在上面的例子中,不是<input type="submit"> ,你也可以使用<button type="submit"> 。 唯一的区别是<button>元素允许孩子。

您可以直观地预期能够使用类似于<a>元素的<button href="http://google.com"> ,但不幸的是,根据HTML规范,该属性不存在。

CSS

如果允许使用CSS,只需使用样式为<a>外观类似按钮的appearance属性(目前仅支持Internet Explorer(2015年7月)仍然很差)。

<a href="http://google.com" class="button">Go to Google</a>
a.button {
    -webkit-appearance: button;
    -moz-appearance: button;
    appearance: button;

    text-decoration: none;
    color: initial;
}

或者选择一个像Bootstrap这样的CSS库。

<a href="http://google.com" class="btn btn-default">Go to Google</a>

JavaScript的

如果允许使用JavaScript,请设置window.location.href

<input type="button" onclick="location.href='http://google.com';" value="Go to Google" />

<button onclick="location.href='http://www.example.com'" type="button">
     www.example.com</button>

如果这是您在基本HTML定位标记中查找的按钮的外观,那么您可以使用Twitter Bootstrap框架将任何以下常见HTML类型链接/按钮设置为按钮形式。 请注意框架版本2,3或4之间的视觉差异:

<a class="btn" href="">Link</a>
<button class="btn" type="submit">Button</button>
<input class="btn" type="button" value="Input">
<input class="btn" type="submit" value="Submit">

Bootstrap(v4)示例外观:

Bootstrap(v3)示例外观:

Bootstrap(v2)示例外观:

Boostrap v2按钮的示例输出

链接地址: http://www.djcxy.com/p/87367.html

上一篇: How to create an HTML button that acts like a link?

下一篇: Background color changing tiles