如何使<a href =””链接看起来像一个按钮?


100

我有此按钮图像:
在此处输入图片说明

我想知道是否有可能使<a href="">some words</a>链接的样式简单并显示为该按钮?

如果有可能,我该怎么做?




5
用户应该通过Web界面的外观知道它的行为是什么...因此,按钮的外观不应用作链接,而链接的视觉外观也不应用作按钮。
拮抗剂

2
通常,一个按钮需要多个图像:“标准”,“悬停”,“按下”,“活动”。否则会感觉不自然。
user123444555621 2011年

我建议您还添加cursor: pointer;css,以使光标看起来像是用食指指向的手,因为这也与常规按钮一起发生,并且对用户有用。
R. Schreurs,

Answers:


106

使用CSS:

.button {
    display: block;
    width: 115px;
    height: 25px;
    background: #4E9CAF;
    padding: 10px;
    text-align: center;
    border-radius: 5px;
    color: white;
    font-weight: bold;
    line-height: 25px;
}
<a class="button">Add Problem</a>

http://jsfiddle.net/GCwQu/


仅当我将其a直接应用于标记(a {display: block ...})时,这才对我有用,这是不可接受的。您知道为什么class标记内的属性a不起作用吗?:(我使用的是Firefox27。我也尝试过a.button {...},它也不起作用
。– just_a_girl 2014年

4
如果您正在使用引导程序,则可以执行<a class="btn btn-info"> </a>并使用现有的引导程序样式,并避免定义新样式。
stcorbett

如果你在你的按钮下划线,加text-decoration:none
罗希特Chemburkar


15

您可以轻松地将带有链接的按钮包装成这样 <a href="#"> <button>my button </button> </a>


18
没有有效的HTML5的家伙
hamstar

1
他们应该更改这一规范;这对我来说最有意义。
朗尼(Bonnie)最佳

14

这样的事情类似于一个按钮:

a.LinkButton {
  border-style: solid;
  border-width : 1px 1px 1px 1px;
  text-decoration : none;
  padding : 4px;
  border-color : #000000
}

有关示例,请参见http://jsfiddle.net/r7v5c/1/


1
添加边框半径:5px;将完成外观。
vdbuilder 2011年

10
  1. 试试这个:

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    
    <div class="container">
      <h2>Button Tags</h2>
      <a href="#" class="btn btn-info" role="button">Link Button</a>
      <button type="button" class="btn btn-info">Button</button>
      <input type="button" class="btn btn-info" value="Input Button">
      <input type="submit" class="btn btn-info" value="Submit Button">
    </div>

  2. 您可以href从此处使用标记行。

    <a href="URL" class="btn btn-info" role="button">Button Text</a>

5

如果您想避免使用CSS对特定设计进行硬编码,而是依靠浏览器的默认按钮,则可以使用以下CSS。

a.button {
  -webkit-appearance: button;
  -moz-appearance: button;
  appearance: button;
}

请注意,它可能无法在IE上运行。


有关浏览器支持的当前状态,请参见caniuse.com/#feat=css-appearance ; 请注意,浏览器的呈现appearance: button方式可能不同于本机按钮(至少在我刚在Chrome 78上选中时)。
SOLO,

这正是我一直在寻找的东西,但是它<a>在chrome中特别不起作用。经过测试,<span>效果很好。
Hashbrown

4

没有其他答案显示代码,其中链接按钮在悬停时会更改其外观。

这是我为解决此问题所做的工作:

HTML:

<a href="http://www.google.com" class="link_button2">My button</a>

CSS:

.link_button2 {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  border: solid 1px #1A4575;
  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: #3A68A1;
  color: #fee1cc;
  text-decoration: none;
  padding: 8px 12px;
  text-decoration: none;
  font-size: larger;
}

a.link_button2:hover {
  text-decoration: underline;
  background: #4479BA;
  border: solid 1px #20538D;

  /* optional different shadow on hover
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.7);
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 1px 1px rgba(0, 0, 0, 0.4);
  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 1px 1px rgba(0, 0, 0, 0.4);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 1px 1px rgba(0, 0, 0, 0.4);
  */

}

JSFiddle:https://jsfiddle.net/adamovic/ovu3k0cj/


2
  • background-image<a>标签上使用CSS属性
  • 设置display:block和调整width以及heightCSS

这应该可以解决问题。


1

是的,你可以这样做。

这是一个例子:

a{
    background:IMAGE-URL;
    display:block;
    height:IMAGE-HEIGHT;
    width:IMAGE-WIDTH;
}

当然,您可以根据需要修改以上示例。重要的是使它显示为块(display:block)或内联块(display:inline-block)。


您应该保持显示:内联;而不是使用高度和宽度,而应使用填充和线高来调整锚点的大小
Antagonist

@ Antagonist:由于OP希望将图像用作背景,并且他很可能总是使用相同的图像,所以我不明白为什么他不应该使用该图像的特定高度和宽度。但是我想OP将尝试所有建议的解决方案并选择对他来说最合适的解决方案。
r0skar 2011年

我的意思是,要使用其他CSS属性来实现相同的操作并保持原始显示属性以内联...
Antagonist

1

对于基本HTML,您只需在HREF(A)内的图像URL中添加一个src设置的img标签即可。

<a href="http://www.google.com"><img src="http://problemio.com/img/ui/add_problem.png" /></a>

1

您可以为要显示为按钮的锚元素创建一个类。

例如:

使用图像:

.button {
   display:block;
   background: url('image');
   width: same as image
   height: same as image
}

或使用纯CSS方法:

.button {
    background:#E3E3E3;
    border: 1px solid #BBBBBB;
    border-radius: 3px 3px 3px 3px;
}

始终记得用以下方式隐藏文本:

text-indent: -9999em;

一个纯CSS按钮的优秀画廊在这里 ,您甚至可以使用css3按钮生成器

这里有很多款式和选择

祝好运


1

为了保持一致性,您有两个选择。

  1. 使用特定于框架的标签,并在整个网站中使用它们。
  2. 使用JavaScript模拟按钮元素上的链接,然后使按钮与浏览器的按钮外观保持一致。这些css按钮外观的骇客永远是不准确的。

<button onclick="location.href = 'Homepage.html'; return false;">My Button</button>

return false; 是为了防止单击按钮的默认行为。


1

只需进行常规的css按钮设计,然后将该CSS应用于链接即可(与应用于按钮的方式完全相同)。

例:

<a href="#" class="stylish-button">Some words</a>

<style type="text/css">
.stylish-button {
    -webkit-box-shadow:rgba(0,0,0,0.2) 0 1px 0 0;
    -moz-box-shadow:rgba(0,0,0,0.2) 0 1px 0 0;
    box-shadow:rgba(0,0,0,0.2) 0 1px 0 0;
    color:#333;
    background-color:#FA2;
    border-radius:5px;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
    border:none;
    font-size:16px;
    font-weight:700;
    padding:4px 16px;
    text-shadow:#FE6 0 1px 0
}
</style>

我已经在过去的项目中做到了这一点,并且IE拒绝表现。我已经测试了这段代码,但是我想提出一个需要更多理由的担忧。
MEM

0

对于那些在添加活动和焦点后遇到问题的人,请为您的按钮提供一个类或ID名称,并将其添加到CSS

例如

// html代码

<button id="aboutus">ABOUT US</button>

// css代码

#aboutus{background-color: white;border:none;outline-style: none;}


-1

试试这个代码:

<code>

    <a href="#" class="button" > HOME </a>

    <style type="text/css">

        .button { background-color: #00CCFF; padding: 8px 16px; display: inline-block; text-decoration: none; color: #FFFFFF border-radius: 3px;}

        .button:hover { background-color: #0066FF; }

    </style>

</code>

观看此内容(它将说明如何执行此操作)-https://youtu.be/euti4HAJJfk


欢迎来到StackOverflow!请在您的帖子中包含所有相关代码,不仅仅是添加指向外部网站的链接。链接非常有用,可以提供更多信息,但是您的帖子应该与其他任何资源分开存放,链接可能会更改或变为“无效”。资深程序员应该能够直接从您的答案中解决问题中详述的问题。
Zachary Espiritu

-3

这样简单:

<a href="#" class="btn btn-success" role="button">link</a>

只需添加“ class =“ btn btn-success”和role = button


1
这个问题没有引导标签。class="btn btn-success"是引导类。
element11
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.