制作<button>,这是HTML中的链接

AKo*_*Kor 20 html css button

基本上,我喜欢<input type="submit">风格的方式,添加一点CSS时可点击按钮.但是,常规按钮没有这样的样式,没有一些主要的CSS或JS它们没有这样的可点击性,你必须使用图像.

我通过使用表单操作将提交按钮设置为链接,但这需要我为每个按钮创建一个新表单.我怎样才能找到幸福的媒介?使用多个表单导致我的样式出现问题我似乎无法解决,除非我找到另一种方法来制作HTML中的链接按钮,这些按钮具有使其具有按下状态的默认样式(我并不是说浏览器默认设置).

有任何想法吗?

ede*_*ett 35

<a href="#"><button>Link Text</button></a>
Run Code Online (Sandbox Code Playgroud)

你问了一个看起来像按钮的链接,所以使用一个链接和一个按钮:-)这将保留默认的浏览器按钮样式.按钮本身不执行任何操作,但单击它会激活其父链接.

演示:

<a href="http://stackoverflow.com"><button>Link Text</button></a>
Run Code Online (Sandbox Code Playgroud)

  • 不要这样做,它不是有效的 HTML。/sf/ask/447567921/ (6认同)
  • 还值得指出的是,对于 tabindex 行为,机器人链接和按钮是可聚焦的,除非您从 tabindex 排序中删除按钮。Codepen 示例:[https://codepen.io/latchy/pen/YzpPebK](https://codepen.io/latchy/pen/YzpPebK) (3认同)
  • 我最近刚遇到这个。永远不要在行内元素中嵌套块元素。看我下面的回答。 (2认同)

job*_*ick 11

重要提示: <button>永远不应该是<a>.

尝试<a href="http://stackoverflow.com"><button>Link Text</button></a>使用任何 html 验证器,如https://validator.w3.org,你会得到一个错误。如果你使用按钮,那么使用按钮真的没有意义。只需将<a>带有 css 的样式设置为看起来像一个按钮。如果你使用像引导一个框架,你可以申请的按钮样式(S) btnbtn-primary等等。

jsfiddle:按钮样式的链接

.btnStack {
  font-family: Oswald;
  background-color: orange;
  color: white;
  text-decoration: none;
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.428571429;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  cursor: pointer;
  border: 1px solid transparent;
  border-radius: 4px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
  user-select: none;
}

a.btnStack:hover {
  background-color: #000;
}
Run Code Online (Sandbox Code Playgroud)
<link href='https://fonts.googleapis.com/css?family=Oswald:400' rel='stylesheet' type='text/css'>
<a href="http://stackoverflow.com" class="btnStack">stackoverflow.com</a>
Run Code Online (Sandbox Code Playgroud)


小智 7

使用 JavaScript:

<button onclick="window.location.href='/css_page.html'">CSS page</button>
Run Code Online (Sandbox Code Playgroud)

您始终可以在 css 中设置按钮样式。希望有帮助!

祝你好运!

  • 这会杀死某些功能,例如“在新选项卡中打开”。 (2认同)

tho*_*ter 5

您有三个选择:

  • 使用 CSS 将链接样式设置为看起来像按钮。

    只需查看您问题下的浅蓝色“标签”即可。

    甚至可以在单击时给它们一个沮丧的外观(使用像 :active 这样的伪类),而不需要任何脚本。无论如何,许多主要网站,例如 Google,现在都开始使用 CSS 样式制作按钮,无论是否编写脚本。

  • 在每个元素周围放置一个单独的 <form> 元素。

    正如您在问题中提到的。简单,并且无需 Javascript(甚至 CSS)也能正常工作。但它添加了一些额外的代码,可能看起来不整洁。

  • 依赖 JavaScript。

    这就是你所说的你不想做的。

  • 您可以使用 CSS 来删除间距。安装 Firebug 并使用“检查元素”来找出现有间距的来源。 (2认同)