如何创建像链接一样的HTML按钮?因此,单击该按钮可将用户重定向到页面。
我希望它是可访问的,并且在URL中使用最少的额外字符或参数。
如何创建像链接一样的HTML按钮?因此,单击该按钮可将用户重定向到页面。
我希望它是可访问的,并且在URL中使用最少的额外字符或参数。
当前回答
从HTML5开始,按钮支持formaction属性。最重要的是,不需要JavaScript或诡计。
<表单><button formaction=“http://stackoverflow.com“>转到堆栈溢出!</button></form>
注意事项
必须由<form>标记包围。<button>类型必须是“submit”(或未指定)-我无法使用“button”类型。这引出了以下问题。重写表单中的默认操作。换句话说,如果在另一个表单中执行此操作,将导致冲突。
参考:formaction
浏览器支持:<button>:button元素
其他回答
<button onclick=“location.href='http://www.example.com'“type=”按钮“>www.example.com</button>
请注意,type=“button”属性很重要,因为它缺少的默认值是SubmitButton状态。
您还可以将buttons类型属性设置为“button”(它使其不提交表单),然后将其嵌套在链接中(使其重定向用户)。
这样,如果需要,您可以在同一表单中有另一个按钮来提交表单。我还认为,在大多数情况下,这比将表单方法和动作设置为链接更可取(除非我猜是搜索表单…)
例子:
<form method=“POST”action=“/SomePath”><input type=“text”name=“somefield”/><a href=“www.target.com”><button type=“button”>转到目标</按钮></a><button type=“submit”>提交表单</button></form>
这样,第一个按钮重定向用户,而第二个按钮提交表单。
小心确保按钮不会触发任何动作,否则会导致冲突。同样,正如Arius所指出的,您应该意识到,出于上述原因,根据标准,严格来说,这并不是有效的HTML。不过,它在Firefox和Chrome中确实可以正常工作,但我还没有在Internet Explorer中测试过它。
<form>
<input type="button" value="Home Page" onclick="window.location.href='http://www.wherever.com'">
</form>
我在一个我目前正在开发的网站上使用了这个,效果很好!如果你也想要一些很酷的样式,我会把CSS放在这里。
输入[类型=“提交”]{背景色:白色;宽度:200px;边框:3px实心#c9c9c9;字体大小:24pt;边距:5px;颜色:#969696;}input[type=“submit”]:悬停{颜色:白色;背景色:#969696;过渡:颜色0.2s 0.05s容易;过渡:背景色0.2s 0.05s轻松;光标:指针;}<input type=“submit”name=“submit”onClick=“window.location=”http://example.com'">
一个正在工作的JSFiddle在这里。
如果您想避免使用表单或输入,并且您正在寻找一个看起来像按钮的链接,那么可以使用div包装器、锚点和h1标记创建好看的按钮链接。您可能希望这样做,以便您可以在页面周围自由放置链接按钮。这对于水平居中的按钮和在其中具有垂直居中的文本特别有用。以下是操作方法:
按钮将由三个嵌套部分组成:div包装器、锚点和h1,如下所示:
.link按钮包装{宽度:200px;高度:40px;方框阴影:插入0px 1px 0px 0px#ffffff;边界半径:4px;背景色:#097BC0;方框阴影:0px 2px 4px灰色;显示:块;边框:1px实心#094BC0;}.link按钮包装器>a{显示:内联表;光标:指针;文本装饰:无;高度:100%;宽度:100%;}.link按钮包装器>a>h1{边距:0自动;显示:表格单元格;垂直对齐:中间;颜色:#f7f8f8;字体大小:18px;字体系列:cabinregular;文本对齐:居中;}<div class=“link button wrapper”><a href=“your/link/此处”><h1>按钮</h1></a></div>
这里有一个jsFiddle,可以查看它并玩它。
此设置的优点:1.使div包装显示:块易于居中(使用margin:0auto)和定位(而<a>是内联的,更难定位,不可能居中)。
您可以只制作<a>显示:块,移动它,并将其设置为按钮样式,但随后垂直对齐其中的文本会变得困难。这允许您创建<a>display:inline表格和<h1>display:table单元格,这允许您在<h1’上使用垂直对齐:middle并垂直居中(这在按钮上总是很好的)。是的,你可以使用填充,但如果你想让你的按钮动态调整大小,那就不那么干净了。有时,当您在div中嵌入<a>时,只有文本是可单击的,这种设置使整个按钮都可单击。如果您只是想移动到另一页,则不必处理表单。表格是用来输入信息的,应该为此保留。允许您干净地将按钮样式和文本样式彼此分离(拉伸优势?当然,但CSS可能看起来很难看,所以分解它很好)。
它确实让我的生活变得更轻松,为可变大小的屏幕设计移动网站。