如何创建像链接一样的HTML按钮?因此,单击该按钮可将用户重定向到页面。

我希望它是可访问的,并且在URL中使用最少的额外字符或参数。


当前回答

如果要创建用于URL的按钮,请为锚点创建按钮类。

a.button {
    background-color: #999999;
    color: #FFFFFF !important;
    cursor: pointer;
    display: inline-block;
    font-weight: bold;
    padding: 5px 8px;
    text-align: center;
    -webkit-border-radius: 5px;
    border-radius: 5px;
}
.button:hover {
    text-decoration: none;
}

其他回答

另一个选项是在按钮中创建链接:

<button type="button"><a href="yourlink.com">Link link</a></button>

然后使用CSS来设置链接和按钮的样式,使链接占据按钮内的全部空间(这样用户就不会错过点击):

button, button a{position:relative;}
button a{top:0;left:0;bottom:0;right:0;}

我在这里创建了一个演示。

请记住,规范中说这是无效的,因为按钮不应包含任何交互式后代。

如果您使用的是CSS库或主题,只需将按钮的类应用于锚/链接标记即可。

以下是一个UI示例:

<a class="btn-block-option" href="">
    <i class="si si-reload"></i>
</a>

还可以使用按钮:

例如,在ASP.NET Core语法中:

// Some other tags
 <form method="post">
      <input asp-for="YourModelPropertyOrYourMethodInputName"
      value="@TheValue" type="hidden" />
      <button type="submit" class="link-button" formaction="/TheDestinationController/TheDestinationActionMethod">
      @(TextValue)
      </button>
  </form>
// Other tags...


<style>
       .link-button {
        background: none !important;
        border: none;
        padding: 0 !important;
        color: #20a8d8;
        cursor: pointer;
    }
</style>

Bootstrap方法也适用于Bulma。

<link rel=“stylesheet”href=“https://cdn.jsdelivr.net/npm/bulma@0.9.2/css/bulma.min.css“><a href=“https://www.stackoverflow.com“class=”button is primary“>堆栈溢出</a>

如果您想避免使用表单或输入,并且您正在寻找一个看起来像按钮的链接,那么可以使用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可能看起来很难看,所以分解它很好)。

它确实让我的生活变得更轻松,为可变大小的屏幕设计移动网站。