Comment faire des boutons ressemblent à un lien?
J'ai besoin de faire un bouton de ressembler à un lien à l'aide de CSS. Les changements sont fait, mais quand je clique dessus, il montre que s'il est poussé comme dans un bouton. Une idée de comment le supprimer, afin que le bouton fonctionne comme un lien, même lorsque l'utilisateur clique dessus?
- cletus: plutôt “pourquoi ne pas utiliser un lien” 😉
- Oserais-je demander pourquoi ne pas utiliser un lien?
- À l'aide d'un bouton est plus facile que l'événement onclick est plus facile à utiliser que le navigateURL pour déclencher JS fonctions.
- événement onclick sur des liens sont aussi simples que sur les boutons
- En fait, les liens et les boutons ont des significations très différentes dans le HTML. Vous devriez lire whatwg.org/specs/web-apps/current-work/multipage/.... Il est peut-être pas une bonne idée de style de bouton pour ressembler à un lien, mais il dépend de la conception de l'INTERFACE utilisateur, tout en utilisant le lien la place, c'est contre le code HTML de spécifications.
- Il ya quelques raisons pourquoi le style d'un bouton comme un lien peut être nécessaire. (1) bouton a type="submit" (2) bouton fantaisie style ie image d'arrière-plan de longueur variable
- Il peut aussi être plus sémantiquement correct pour quelque chose à un bouton, même si vous voulez qu'il ressemble à un lien. Par exemple, imaginez une paire de "Développer Toutes les | l'Effondrement de Toutes les" liens qui changent quelque chose sur la page. En cliquant sur ces causes d'une action, mais ne prend pas l'utilisateur n'importe où - sur le plan sémantique, sont ceux d'un bouton. Cependant, le concepteur peut avoir specfied liens pour l'aspect raisons. Donc c'est effectivement une très bonne question.
- Je suis à l'aide d'un bouton au lieu d'un lien parce que le déclenchement de JS méthodes avec un lien, je suis obligé de lien à
#
ensuite utiliserevent.preventDefault()
. C'est méchant, comme est un lien versjavascript:void(0);
. - les liens ne doivent pas être utilisés pour supprimer une action, par exemple
- À l'aide d'un bouton qui vous permet d'émettre une requête POST, qui est spec-défini non la quantité.
- "Je suis obligé de lien vers #" --- Vraiment ... par qui? Sauf si vous avez quelques JS c'est l'application d'une politique que vous pouvez faire: onclick="foo();return false;"
- Le style d'un bouton, un lien est un moyen facile d'obtenir un élément de menu qui ressemble et se comporte comme
<a>text</a>
, mais est en fait<form><input value="text"></form>
, de sorte qu'il Devient ou des Messages de données.
Vous devez vous connecter pour publier un commentaire.
HTML
CSS
Voir la Démo (sur JSfiddle)
button.link {...styles...}
puis<button class="link">Your button</button>
. Cela évite également à l'aide de!important
qui est toujours une bonne idée.outline
. Certains navigateurs ajouter les boutons. Vous pouvez définiroutline-color: transparent
.border-bottom
est un peu un hack pour faire il a regardé souligné. Cette réponse est par ailleurs un bon début, mais la deuxième réponse ici, c'est vraiment plus approfondi et a la bonne solution pour le soulignement.font: inherit
; la plupart des navigateurs utilisent leur propre police pour les boutons.button:active, button:focus { outline: none; }
. Ce va se débarrasser de l'aperçu que les navigateurs ont tendance à placer autour du bouton, tandis que votre clic de la souris est maintenu enfoncé (active), et publié (concentré).border-bottom
utilisationtext-decoration:underline
.outline:none
.Le code de la accepté de répondre à des œuvres pour la plupart des cas, mais pour obtenir un bouton qui se comporte vraiment comme un lien que vous avez besoin d'un peu plus de code. Il est particulièrement difficile d'obtenir le style de boutons à droite sur Firefox (Mozilla).
Le code CSS suivant assure que les ancres et les boutons ont les mêmes propriétés CSS et de se comporter de la même manière sur tous les navigateurs les plus courants:
L'exemple ci-dessus ne modifie
button
éléments pour améliorer la lisibilité, mais il peut être facilement étendu à modifierinput[type="button"], input[type="submit"]
etinput[type="reset"]
éléments. Vous pouvez également utiliser une classe, si vous voulez faire uniquement certains boutons ressemblent à des ancres.Voir cette JSFiddle pour un live de la démo.
Veuillez également noter qu'il s'agit de la valeur par défaut d'ancre, le style des boutons (en bleu, par exemple de texte en couleur). Donc, si vous voulez changer la couleur du texte ou quoi que ce soit d'autre d'ancres, & boutons, vous devriez faire ce après le CSS ci-dessus.
Le code d'origine (voir l'extrait) dans cette réponse était complètement différent et incomplète.
CSS:
outline-offset: 0;
si le contour est défini sur aucun?box-shadow: none
pour effacer tous les style sur le boutonSi vous n'avez pas l'esprit à l'aide de twitter bootstrap je vous suggère de simplement utiliser le lien de classe.
HTML:
J'espère que cela aide quelqu'un 🙂 have a nice day!
essayez d'utiliser le css pseudoclass
:focus
modifier comme pour les liens et les événements onclick utiliser (vous ne devriez pas utiliser le javascript en ligne gestionnaires d'événements, mais par souci de simplicité, je vais les utiliser ici):
avec cette.href vous pouvez même accéder à la cible du lien dans votre fonction.
return false
va juste empêcher les navigateurs en suivant le lien quand on clique dessus.si javascript est désactivé le lien va fonctionner comme un lien normal et il suffit de charger
some/page.php
—si vous voulez que votre lien soit morts quand js est désactivéhref="#"
padding
Vous ne pouvez pas les boutons de style que des liens fiable sur tout les navigateurs. Je l'ai essayé, mais il y a toujours un peu bizarre de rembourrage, de marge ou de la police à cause de problèmes de navigateur. Soit en direct, avec en laissant le bouton de ressembler à un bouton ou à l'aide onClick et preventDefault sur un lien.
Vous pouvez atteindre cet objectif en utilisant de simples css comme indiqué dans l'exemple ci-dessous
CSS:
HTML: