Como fazer o link <a href= Budap”> parecer um botão?

100

Eu tenho esta imagem de botão:
insira a descrição da imagem aqui

Eu queria saber se seria possível fazer com que um <a href="">some words</a>link simples e estilizado aparecesse como esse botão?

Se for possível, como faço isso?

GeekedOut
fonte
1
Usando CSS, eu acho;) google.com.ua/search?q=style+anchor+tag+like+button
antyrat
5
Os usuários devem saber pela aparência da interface da web qual é o seu comportamento ... portanto, a aparência do botão não deve ser usada como link, e a aparência visual de um link não deve ser usada como um botão para.
Antagonista
2
Normalmente, você precisa de mais de uma imagem para um botão: Padrão, pairado, pressionado, ativo. Caso contrário, não parecerá natural.
user123444555621
Eu sugiro que você também adicione cursor: pointer;css para fazer com que o cursor pareça ligar uma mão com um dedo indicador apontando, pois isso também acontece com um botão normal e é uma ajuda útil para o usuário.
R. Schreurs

Respostas:

107

Usando 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/

Declan Cook
fonte
Isso só funciona para mim se eu aplicar a atag diretamente ( a {display: block ...}), o que não é aceitável. Você tem alguma ideia de por que o classatributo dentro da atag não funciona? :( Estou usando o Firefox 27. Eu também tentei, a.button {...}mas também não funciona.
just_a_girl
4
se estiver usando bootstrap, você pode fazer <a class="btn btn-info"> </a> e usar estilos de bootstrap existentes e evitar definir um novo estilo.
stcorbett
se você receber um sublinhado em seu botão, adicionetext-decoration:none
Rohit Chemburkar
99

Verifique os documentos do Bootstrap . Existe uma classe .btne funciona com a atag, mas você precisa adicionar uma .btn-*classe específica com a .btnclasse.

por exemplo: <a class="btn btn-info"></a>

Gildas Ross
fonte
1
Ótimo. Eu estava usando Bootstrap e não sabia disso; P
Felipe Carminati
13
Em versões recentes do bootstrap, você precisa de uma classe btn- * específica com a classe btn. por exemplo: <a class="btn btn-info"> </a>
stcorbett
15

você pode facilmente envolver um botão com um link como este <a href="#"> <button>my button </button> </a>

Antagonista
fonte
18
Não é HTML5 válido cara
hamstar
1
Eles devem alterar as especificações deste; faz mais sentido para mim.
Lonnie Melhor
14

Algo assim seria semelhante a um botão:

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

Consulte http://jsfiddle.net/r7v5c/1/ para obter um exemplo.

traço
fonte
1
adicionando border-radius: 5px; iria completar o look.
vdbuilder
10
  1. Experimente isto:

    <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. Você pode usar o hrefslogan a partir daí.

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

Se você quiser evitar a codificação permanente de um design específico com css, mas preferir confiar no botão padrão do navegador, pode usar o css a seguir.

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

Observe que provavelmente não funcionará no IE.

botmsh
fonte
Para o estado atual do suporte do navegador, consulte caniuse.com/#feat=css-appearance ; observe que o navegador pode renderizar de maneira appearance: buttondiferente de um botão nativo (pelo menos quando acabei de verificar no Chrome 78).
SOLO
isso é exatamente o que eu estava procurando, mas especificamente não funciona <a>no Chrome. Testei <span>e funcionou bem.
Hashbrown
4

Nenhuma das outras respostas mostra o código onde o botão de link muda sua aparência ao passar o mouse.

Isso é o que fiz para consertar isso:

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/

Mladen Adamovic
fonte
2
  • Use a background-imagepropriedade CSS na <a>tag
  • Definir display:blocke ajustar widthe heightem CSS

Isso deve funcionar.

dweeves
fonte
1

Sim, você pode fazer isso.

Aqui está um exemplo:

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

Claro que você pode modificar o exemplo acima conforme sua necessidade. O importante é fazê-lo aparecer como um bloco ( display:block) ou um bloco embutido ( display:inline-block).

r0skar
fonte
você deve manter o display: inline; e em vez de usar altura e largura, você deve usar preenchimento e altura da linha para ajustar o tamanho da âncora
Antagonista
@Antagonista: Já que o OP deseja uma imagem como plano de fundo e provavelmente sempre a usará, não vejo por que ele não deveria usar a altura e largura específicas dessa imagem. Mas acho que o OP tentará todas as soluções sugeridas e escolherá a que parecer melhor para ele.
r0skar
o que estou dizendo é, para usar outras propriedades css para conseguir a mesma coisa e manter a propriedade de exibição original para embutir ...
Antagonist
1

Para HTML básico, você pode apenas adicionar uma tag img com o src definido para o URL da imagem dentro do HREF (A)

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

Você pode criar uma classe para os elementos âncora que gostaria de exibir como botões.

Por exemplo:

Usando uma imagem:

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

ou usando uma abordagem CSS pura:

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

Lembre-se sempre de ocultar o texto com algo como:

text-indent: -9999em;

Uma excelente galeria de botões CSS puros está aqui e você pode até usar o gerador de botões css3

Muitos estilos e opções estão aqui

boa sorte

Rdpi
fonte
1

Você tem duas opções de consistência.

  1. Use tags específicas da estrutura e use-as em todo o site.
  2. Use JavaScript para emular um link em um elemento de botão e, a seguir, faça com que o botão seja consistente com a aparência dos botões do navegador. Esses hacks de botão de CSS nunca serão precisos.

.

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

return false; é para evitar que o comportamento padrão do botão seja clicado.

Ghasan
fonte
1

Simplesmente pegue designs de botões css regulares e aplique esse CSS a um link (exatamente da mesma maneira que você faria a um botão).

Exemplo:

<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>
Graemeboy
fonte
Já fiz isso em projetos anteriores e o IE se recusa a se comportar. Eu testei este código, mas gostaria de deixar uma preocupação que precisa de mais justificativa.
MEM
0

para aqueles que estão tendo problemas após adicionar active e focus dê uma classe ou nome de id ao seu botão e adicione isso ao css

por exemplo

//Código HTML

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

// código css

#aboutus{background-color: white;border:none;outline-style: none;}
Subham Choudhary
fonte
-1

Testado com Chromium 40 e Firefox 36

<a href="url" style="text-decoration:none">
   <input type="button" value="click me!"/>
</a>
Franz Fankhauser
fonte
1
Este não é um HTML válido.
Javier
-1

Experimente este código:

<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>

Veja isto (irá explicar como fazer) - https://youtu.be/euti4HAJJfk

D. Madhushan
fonte
Bem-vindo ao StackOverflow! Inclua todos os códigos relevantes em sua postagem e não inclua apenas um link para um site externo. Os links são ótimos para obter informações adicionais , mas sua postagem deve ser independente de qualquer outro recurso - os links podem mudar ou ficar "mortos". Os colegas programadores devem ser capazes de resolver o problema detalhado na pergunta diretamente de sua resposta.
Zachary Espiritu
-3

Simples assim:

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

Basta adicionar "class =" btn btn-success "& role = botão

lio
fonte
1
Esta pergunta não possui uma tag de bootstrap. class="btn btn-success"é uma classe de bootstrap.
element11