如何使html链接看起来像一个按钮?

Mat*_*tin 140 css button

我正在使用ASP.NET,我的一些按钮只是重定向.我宁愿他们是普通的链接,但我不希望我的用户注意到外观上的差异.我认为用锚点包装的图像,即标签,但我不想每次更改按钮上的文本时都要启动图像编辑器.

TSt*_*per 201

将此课程应用于此课程

.button {
  font: bold 11px Arial;
  text-decoration: none;
  background-color: #EEEEEE;
  color: #333333;
  padding: 2px 6px 2px 6px;
  border-top: 1px solid #CCCCCC;
  border-right: 1px solid #333333;
  border-bottom: 1px solid #333333;
  border-left: 1px solid #CCCCCC;
}
Run Code Online (Sandbox Code Playgroud)
<a href="#" class="button">Example</a>
Run Code Online (Sandbox Code Playgroud)

  • 对此的关注是它需要您使用CSS重现按钮的外观.但不幸的是,不同浏览器和不同版本的浏览器上的按钮看起来不同.所以你要么接受它在某些浏览器中看起来很有趣,要么有一堆代码来确定用户拥有哪个浏览器和哪个版本并选择不同的风格.这是一个很大的麻烦,并可能在下一次浏览器的新版本出现时破坏. (10认同)

gua*_*ome 123

我觉得这很愚蠢,我将发布这个古老的问题.

为什么不在按钮元素周围包装锚标记.

<a href="somepage.html"><button type="button">Text of Some Page</button></a>
Run Code Online (Sandbox Code Playgroud)

阅读完这篇文章并尝试接受的答案而没有我想要的预期结果,我尝试了上述内容并得到了我想要的内容.

注意

这仅适用于IE9 +,Chrome,Safari,Firefox和Opera.

  • 嵌套<button>和<a>是无效的HTML并且具​​有未定义的行为.请参阅http://stackoverflow.com/questions/6393827/can-i-nest-a-button-element-inside-an-a-using-html5这里的详细答案.如果它有效,那只是巧合. (28认同)
  • @Dean_Wilson尝试不得不迎合ie6 :( (8认同)

Rau*_*una 34

恕我直言,有一个更好,更优雅的解决方案.如果您的链接是这样的:

<a href="http://www.example.com">Click me!!!</a>
Run Code Online (Sandbox Code Playgroud)

相应的按钮应为:

<form method="GET" action="http://www.example.com">
<input type="submit" value="Click me!!!">
</form>
Run Code Online (Sandbox Code Playgroud)

这种方法更简单,因为它使用简单的html元素,因此它可以在所有浏览器中使用而无需更改任何内容.此外,如果您的按钮有样式,此解决方案将免费为您的新按钮应用相同的样式.

  • 好的,我今天测试了这个...并且..如果你没有使用ASP.NET webforms,它会很有用.ASP.NET webforms将整个页面包装在一个表单标记中,嵌套表单似乎根本不起作用 - 它在ASP.NET表单标记之外工作,但这限制了对顶部和底部链接的使用. (5认同)
  • 简单有效.您可能希望将display:inline样式添加到表单元素.否则,它被视为与按钮/锚点/输入不同的块. (3认同)

Kev*_*ary 25

CSS3 appearance属性提供了一种使用浏览器内置样式设置任何元素(包括锚点)样式的简单方法<button>:

a.btn {
  -webkit-appearance: button;
  -moz-appearance: button;
  appearance: button;
}
Run Code Online (Sandbox Code Playgroud)
<body>
  <a class="btn">CSS Button</a>
</body>
Run Code Online (Sandbox Code Playgroud)

CSS Tricks有一个很好的大纲,有关于此的更多细节.请记住,根据caniuse.com,目前没有任何版本的Internet Explorer支持此功能.

  • 这是从CSS3规范中删除的.https://www.htmlvalidator.com/help.php?m=1&h=appearance (3认同)

Óla*_*age 21

a {
    display: block;
    height: 20px;
    width: auto;
    border: 1px solid #000;
}
Run Code Online (Sandbox Code Playgroud)

<a>如果你给它们块显示,你可以使用这样的标签.您可以调整边框以产生类似阴影效果和该按钮的背景颜色感觉:)


rup*_*ray 17

如果你想要带圆角的漂亮按钮,那么使用这个类:

.link_button {
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
    border: solid 1px #20538D;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);
    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
    -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
    background: #4479BA;
    color: #FFF;
    padding: 8px 12px;
    text-decoration: none;
}
Run Code Online (Sandbox Code Playgroud)
<a href="#" class="link_button">Example</a>
Run Code Online (Sandbox Code Playgroud)

  • 我添加了这个和jsFiddle的最高等级答案.随意乱用http://jsfiddle.net/5z6ew1m0/6 (3认同)

MD *_*YON 5

超文本标记语言

<a class="btn">Button</a>
Run Code Online (Sandbox Code Playgroud)

CSS

  background-color: #4CAF50; /* Green */
  border: none;
  color: white;
  padding: 15px 32px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 16px;
Run Code Online (Sandbox Code Playgroud)