Jak sprawić, by link <a href=_action”> wyglądał jak przycisk?

100

Mam ten obraz przycisku:
wprowadź opis obrazu tutaj

Zastanawiałem się, czy byłoby możliwe, aby prosty <a href="">some words</a>i stylowy link pojawiał się jako ten przycisk?

Jeśli to możliwe, jak mam to zrobić?

GeekedOut
źródło
1
Chyba za pomocą CSS;) google.com.ua/search?q=style+anchor+tag+like+button
antyrat
5
Użytkownicy powinni wiedzieć po wyglądzie interfejsu internetowego, jakie jest jego zachowanie ... więc wygląd przycisku nie powinien być używany jako łącze, a wygląd łącza nie powinien być używany jako przycisk do.
Antagonist
2
Zwykle do przycisku potrzebujesz więcej niż jednego obrazu: Standardowy, najechany kursorem, wciśnięty, aktywny. W przeciwnym razie nie będzie to naturalne.
user123444555621
Sugeruję również dodanie cursor: pointer;w css, aby kursor wyglądał jak łączy dłoń z palcem wskazującym, ponieważ dzieje się to również w przypadku zwykłego przycisku i jest to użyteczna pomoc dla użytkownika.
R. Schreurs,

Odpowiedzi:

107

Korzystanie z 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
źródło
Działa to tylko wtedy, gdy zastosuję go abezpośrednio do tagu ( a {display: block ...}), co jest niedopuszczalne. Czy masz pojęcie, dlaczego classatrybut wewnątrz atagu nie działa? :( Używam przeglądarki Firefox 27. Próbowałem też a.button {...}i to też nie działa.
just_a_girl
4
jeśli używasz bootstrapa, możesz zrobić <a class="btn btn-info"> </a> i użyć istniejących stylów ładowania początkowego i uniknąć definiowania nowego stylu.
stcorbett
jeśli dostaniesz podkreślenie na swoim przycisku, dodajtext-decoration:none
Rohit Chemburkar
99

Sprawdź dokumentację Bootstrap . Klasa .btnistnieje i działa z atagiem, ale musisz dodać określoną .btn-*klasę do .btnklasy.

na przykład: <a class="btn btn-info"></a>

Gildas Ross
źródło
1
Wspaniały. Używałem Bootstrap i nie wiedziałem o tym; P
Felipe Carminati
13
W najnowszych wersjach bootstrapa potrzebujesz specyficznej klasy btn- * z klasą btn. np .: <a class="btn btn-info"> </a>
stcorbett
15

możesz łatwo owinąć przycisk takim linkiem <a href="#"> <button>my button </button> </a>

Antagonista
źródło
18
Koleś
1
Powinni zmienić specyfikację tego; to ma dla mnie największy sens.
Lonnie Best
14

Coś takiego przypominałoby przycisk:

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

Przykład można znaleźć pod adresem http://jsfiddle.net/r7v5c/1/ .

dziarskość
źródło
1
dodanie border-radius: 5px; uzupełni wygląd.
vdbuilder
10
  1. Spróbuj tego:

    <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. hrefStamtąd możesz użyć sloganu a .

    <a href="URL" class="btn btn-info" role="button">Button Text</a>
Sleepy B.
źródło
5

Jeśli chcesz uniknąć zakodowania konkretnego projektu za pomocą css, ale raczej polegać na domyślnym przycisku przeglądarki, możesz użyć następującego css.

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

Zauważ, że prawdopodobnie nie będzie działać w IE.

botmsh
źródło
Aktualny stan obsługi przeglądarek można znaleźć na caniuse.com/#feat=css-appearance ; zwróć uwagę, że przeglądarka może renderować się appearance: buttoninaczej niż natywny przycisk (przynajmniej gdy właśnie sprawdziłem w Chrome 78).
SOLO
to jest dokładnie to, czego szukałem, ale specjalnie nie działa <a>w chrome. Przetestowałem to <span>i działało dobrze.
Hashbrown
4

Żadna z innych odpowiedzi nie pokazuje kodu, w którym przycisk linku zmienia swój wygląd po najechaniu kursorem.

Oto, co zrobiłem, aby to naprawić:

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
źródło
2
  • Użyj background-imagewłaściwości CSS w <a>tagu
  • Ustaw display:blocki dostosuj widthoraz heightw CSS

To powinno załatwić sprawę.

dweeves
źródło
1

Tak, możesz to zrobić.

Oto przykład:

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

Oczywiście możesz zmodyfikować powyższy przykład do swoich potrzeb. Ważne jest, aby wyglądał jak block ( display:block) lub inline block ( display:inline-block).

r0skar
źródło
powinieneś zachować wyświetlanie: inline; i zamiast używać wysokości i szerokości, powinieneś użyć dopełnienia i wysokości linii, aby dostosować rozmiar kotwicy
Antagonist
@Antagonista: Ponieważ OP chce mieć obraz jako tło i najprawdopodobniej zawsze będzie używał tego samego, nie rozumiem, dlaczego nie miałby używać określonej wysokości i szerokości tego obrazu. Ale myślę, że PO spróbuje wszystkich sugerowanych rozwiązań i wybierze to, które wydaje mu się najlepsze.
r0skar
mówię o tym, aby użyć innych właściwości CSS, aby osiągnąć to samo i zachować oryginalną właściwość wyświetlania do inline ...
Antagonist
1

W przypadku podstawowego HTML możesz po prostu dodać tag img z ustawieniem src do adresu URL obrazu wewnątrz HREF (A)

<a href="http://www.google.com"><img src="http://problemio.com/img/ui/add_problem.png" /></a>
msmucker0527
źródło
1

Możesz utworzyć klasę dla elementów zakotwiczenia, które chcesz wyświetlać jako przyciski.

Na przykład:

Korzystanie z obrazu:

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

lub używając czystego podejścia CSS:

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

Zawsze pamiętaj, aby ukryć tekst za pomocą czegoś takiego:

text-indent: -9999em;

Doskonała galeria czystych przycisków CSS jest tutaj i możesz nawet użyć generatora przycisków css3

Wiele stylów i wybory są tutaj

powodzenia

Rdpi
źródło
1

Masz dwie opcje spójności.

  1. Używaj znaczników specyficznych dla platformy i używaj ich w całej witrynie.
  2. Użyj JavaScript, aby emulować łącze w elemencie przycisku, a następnie spraw, aby przycisk był zgodny z wyglądem przycisków przeglądarki. Te hacki wyglądające na przycisk CSS nigdy nie będą dokładne.

.

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

return false; ma na celu zapobieżenie domyślnemu zachowaniu się przycisku po kliknięciu.

Ghasan
źródło
1

Po prostu weź zwykłe projekty przycisków css i zastosuj ten kod CSS do łącza (dokładnie w taki sam sposób, jak do przycisku).

Przykład:

<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
źródło
Zrobiłem to w poprzednich projektach, a IE odmawia zachowania. Przetestowałem ten kod, ale chciałbym przedstawić obawy, które wymagają dokładniejszego uzasadnienia.
MEM
0

dla tych, którzy mają problemy po dodaniu active i focus, podaj nazwę klasy lub id do swojego przycisku i dodaj to do css

na przykład

//Kod HTML

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

// kod css

#aboutus{background-color: white;border:none;outline-style: none;}
Subham choudhary
źródło
-1

Przetestowano z Chromium 40 i Firefox 36

<a href="url" style="text-decoration:none">
   <input type="button" value="click me!"/>
</a>
Franz Fankhauser
źródło
1
To nie jest prawidłowy kod HTML.
Javier
-1

Wypróbuj ten kod:

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

Obejrzyj to (wyjaśni, jak to zrobić) - https://youtu.be/euti4HAJJfk

D.Madhushan
źródło
Witamy w StackOverflow! Prosimy o umieszczenie w poście całego odpowiedniego kodu i nie tylko umieszczanie łącza do zewnętrznej witryny internetowej. Linki świetnie nadają się do zamieszczania dodatkowych informacji , ale Twój post powinien odróżniać się od innych zasobów - linki mogą ulec zmianie lub stać się „martwe”. Inni programiści powinni być w stanie rozwiązać problem wyszczególniony w pytaniu prosto z Twojej odpowiedzi.
Zachary Espiritu
-3

To takie proste:

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

Po prostu dodaj przycisk "class =" btn btn-success "& role =

lio
źródło
1
To pytanie nie ma tagu bootstrap. class="btn btn-success"jest klasą bootstrap.
element11