Wie kann ein <a href=""> Link wie eine Schaltfläche aussehen?

99

Ich habe dieses Schaltflächenbild:
Geben Sie hier die Bildbeschreibung ein

Ich habe mich gefragt, ob es möglich ist, einen einfachen <a href="">some words</a>und stilvollen Link zu erstellen , der als diese Schaltfläche angezeigt wird.

Wenn es möglich ist, wie mache ich das?

GeekedOut
quelle
5
Benutzer sollten anhand des Erscheinungsbilds der Weboberfläche wissen, wie sie sich verhält. Daher sollte das Erscheinungsbild der Schaltfläche nicht als Link und das visuelle Erscheinungsbild eines Links nicht als Schaltfläche für verwendet werden.
Antagonist
2
Normalerweise benötigen Sie mehr als ein Bild für eine Schaltfläche: Standard, schwebend, gedrückt, aktiv. Sonst fühlt es sich nicht natürlich an.
user123444555621
Ich schlage vor, dass Sie auch cursor: pointer;CSS hinzufügen , damit der Cursor eine Hand mit einem Zeigefinger verknüpft. Dies geschieht auch mit einer normalen Schaltfläche und ist eine nützliche Hilfe für den Benutzer.
R. Schreurs

Antworten:

105

Verwenden von 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
quelle
Dies funktioniert nur, wenn ich es adirekt auf tag ( a {display: block ...}) anwende , was nicht akzeptabel ist. Haben Sie eine Idee, warum das classAttribut im aTag nicht funktioniert? :( Ich benutze Firefox 27. Ich habe es auch versucht a.button {...}und es funktioniert auch nicht.
just_a_girl
4
Wenn Sie Bootstrap verwenden, können Sie <a class="btn btn-info"> </a> vorhandene Bootstrap-Stile verwenden und vermeiden, einen neuen Stil zu definieren.
stcorbett
Wenn Sie eine Unterstreichung in Ihrer Schaltfläche erhalten, fügen Sie hinzutext-decoration:none
Rohit Chemburkar
99

Überprüfen Sie die Dokumente von Bootstrap . Eine Klasse .btnexistiert und funktioniert mit dem aTag, aber Sie müssen .btn-*der .btnKlasse eine bestimmte Klasse hinzufügen .

z.B: <a class="btn btn-info"></a>

Gildas Ross
quelle
1
Toll. Ich benutzte Bootstrap und wusste das nicht; P
Felipe Carminati
13
In neueren Versionen von Bootstrap benötigen Sie eine bestimmte btn- * -Klasse mit der btn-Klasse. Beispiel: <a class="btn btn-info"> </a>
stcorbett
15

Sie können eine Schaltfläche einfach mit einem solchen Link umschließen <a href="#"> <button>my button </button> </a>

Gegner
quelle
18
Nicht HTML5 gültiger Typ
Hamstar
1
Sie sollten die Spezifikation auf diesem ändern; es macht für mich am meisten Sinn.
Lonnie Best
14

So etwas würde einem Knopf ähneln:

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

Ein Beispiel finden Sie unter http://jsfiddle.net/r7v5c/1/ .

Strich
quelle
1
Randradius hinzufügen: 5px; würde den Look vervollständigen.
Vdbuilder
10
  1. Versuche dies:

    <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. hrefVon dort aus können Sie die a- Tag-Zeile verwenden.

    <a href="URL" class="btn btn-info" role="button">Button Text</a>
Schläfrig B.
quelle
5

Wenn Sie vermeiden möchten, ein bestimmtes Design mit CSS fest zu codieren, sondern sich auf die Standardschaltfläche des Browsers verlassen möchten, können Sie das folgende CSS verwenden.

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

Beachten Sie, dass es im IE wahrscheinlich nicht funktioniert.

botmsh
quelle
Informationen zum aktuellen Stand der Browserunterstützung finden Sie unter caniuse.com/#feat=css-appearance . Beachten Sie, dass der Browser möglicherweise appearance: buttonanders als eine native Schaltfläche rendert (zumindest, als ich gerade Chrome 78 aktiviert habe).
SOLO
Das ist genau das, wonach ich gesucht habe, aber es funktioniert speziell nicht für <a>Chrom. Getestet <span>und es hat gut funktioniert.
Hashbrown
4

Keine der anderen Antworten zeigt den Code an, bei dem die Verknüpfungstaste beim Schweben ihr Aussehen ändert.

Folgendes habe ich getan, um das zu beheben:

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
quelle
2
  • Verwenden Sie die background-imageCSS-Eigenschaft für das <a>Tag
  • Set display:blockund anpassen widthund heightin CSS

Dies sollte den Trick tun.

Dweeves
quelle
1

Ja, das kannst du machen.

Hier ist ein Beispiel:

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

Natürlich können Sie das obige Beispiel an Ihre Bedürfnisse anpassen. Wichtig ist, dass es als Block ( display:block) oder Inline-Block ( display:inline-block) angezeigt wird .

r0skar
quelle
Sie sollten die Anzeige behalten: inline; und anstatt Höhe und Breite zu verwenden, sollten Sie Polsterung und Linienhöhe verwenden, um die Größe des Ankers anzupassen
Antagonist
@Antagonist: Da der OP ein Bild als Hintergrund haben möchte und höchstwahrscheinlich immer dasselbe verwenden wird, verstehe ich nicht, warum er die spezifische Höhe und Breite dieses Bildes nicht verwenden sollte. Aber ich denke, das OP wird alle vorgeschlagenen Lösungen ausprobieren und diejenige auswählen, die ihm am besten erscheint.
r0skar
Was ich damit sagen will, ist, andere CSS-Eigenschaften zu verwenden, um dasselbe zu erreichen und die ursprüngliche Anzeigeeigenschaft für Inline beizubehalten ...
Antagonist
1

Für einfaches HTML können Sie einfach ein img-Tag hinzufügen, wobei der src auf Ihre Bild-URL im HREF (A) festgelegt ist.

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

Sie können eine Klasse für die Ankerelemente erstellen, die Sie als Schaltflächen anzeigen möchten.

Z.B:

Verwenden eines Bildes:

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

oder mit einem reinen CSS-Ansatz:

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

Denken Sie immer daran, den Text mit etwas zu verbergen wie:

text-indent: -9999em;

Hier finden Sie eine hervorragende Galerie mit reinen CSS-Schaltflächen , und Sie können sogar den CSS3-Schaltflächengenerator verwenden

Viele Stile und Auswahlmöglichkeiten sind hier

Viel Glück

Rdpi
quelle
1

Sie haben zwei Optionen für die Konsistenz.

  1. Verwenden Sie Framework-spezifische Tags und verwenden Sie sie auf der gesamten Website.
  2. Verwenden Sie JavaScript, um einen Link für ein Schaltflächenelement zu emulieren, und lassen Sie die Schaltfläche dann mit den Schaltflächen des Browsers übereinstimmen. Diese CSS-Hacks im Button-Look werden niemals genau sein.

.

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

return false; soll verhindern, dass das Standardverhalten der Schaltfläche angeklickt wird.

Ghasan
quelle
1

Nehmen Sie einfach normale CSS-Schaltflächenentwürfe und wenden Sie dieses CSS auf einen Link an (genauso wie auf eine Schaltfläche).

Beispiel:

<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
quelle
Ich habe dies bei früheren Projekten getan und der IE weigert sich, sich zu verhalten. Ich habe diesen Code getestet, möchte jedoch ein Anliegen angeben, das mehr Rechtfertigung benötigt.
MEM
0

Wenn Sie nach dem Hinzufügen von Aktiv und Fokus Probleme haben, geben Sie Ihrer Schaltfläche einen Klassen- oder ID-Namen und fügen Sie diesen zu CSS hinzu

beispielsweise

//HTML Quelltext

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

// CSS-Code

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

Getestet mit Chrom 40 und Firefox 36

<a href="url" style="text-decoration:none">
   <input type="button" value="click me!"/>
</a>
Franz Fankhauser
quelle
1
Dies ist kein gültiger HTML-Code.
Javier
-1

Versuchen Sie diesen Code:

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

Beobachten Sie dies (es wird erklärt, wie es geht) - https://youtu.be/euti4HAJJfk

D. Madhushan
quelle
Willkommen bei StackOverflow! Bitte fügen Sie allen relevanten Code in Ihren Beitrag ein und fügen Sie nicht nur einen Link zu einer externen Website hinzu. Links eignen sich hervorragend für zusätzliche Informationen , aber Ihr Beitrag sollte von jeder anderen Ressource getrennt sein - Links können sich ändern oder "tot" werden. Mitprogrammierer sollten in der Lage sein, das in der Frage beschriebene Problem direkt aus Ihrer Antwort heraus zu lösen.
Zachary Espiritu
-3

So einfach ist das:

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

Fügen Sie einfach die Schaltfläche "class =" btn btn-success "& role = hinzu

lio
quelle
1
Diese Frage hat kein Bootstrap-Tag. class="btn btn-success"ist eine Bootstrap-Klasse.
Element11