Necesito hacer que un botón se vea como un enlace usando CSS. Los cambios están hechos, pero cuando hago clic en él, se muestra como si estuviera presionado como en un botón. ¿Alguna idea de cómo eliminar eso, para que el botón funcione como un enlace incluso cuando se hace clic?
287
#
luego usarloevent.preventDefault()
. Eso es desagradable, como se está vinculando ajavascript:void(0);
.Respuestas:
fuente
button.link {...styles...}
entonces<button class="link">Your button</button>
. Esto también evita el uso!important
que siempre es una buena idea.outline
. Algunos navegadores lo agregan a los botones. Puedes configuraroutline-color: transparent
.border-bottom
usartext-decoration:underline
.El código de la respuesta aceptada funciona para la mayoría de los casos, pero para obtener un botón que realmente se comporte como un enlace necesita un poco más de código. Es especialmente difícil obtener el estilo de los botones enfocados directamente en Firefox (Mozilla).
El siguiente CSS garantiza que los anclajes y botones tengan las mismas propiedades CSS y se comporten de la misma manera en todos los navegadores comunes:
El ejemplo anterior solo modifica
button
elementos para mejorar la legibilidad, pero también se puede ampliar fácilmente para modificarinput[type="button"], input[type="submit"]
yinput[type="reset"]
elementos. También puede usar una clase, si desea que solo ciertos botones se vean como anclas.Vea este JSFiddle para una demostración en vivo.
Tenga en cuenta también que esto aplica el estilo de anclaje predeterminado a los botones (por ejemplo, color de texto azul). Entonces, si desea cambiar el color del texto o cualquier otra cosa de los anclajes y botones, debe hacerlo después del CSS anterior.
El código original (ver fragmento) en esta respuesta era completamente diferente e incompleto.
Mostrar fragmento de código
fuente
outline-offset: 0;
si el esquema se establece en ninguno?box-shadow: none
para borrar todo el estilo en el botóntext-transform: none;
Si no le importa usar el programa de arranque de Twitter, le sugiero que simplemente use la clase de enlace .
Espero que esto ayude a alguien :) ¡Que tengas un buen día!
fuente
intente usar la pseudoclase css
:focus
edite en cuanto al uso de enlaces y eventos onclick (no debe usar controladores de eventos javascript en línea, pero en aras de la simplicidad los usaré aquí):
con this.href puedes incluso acceder al objetivo del enlace en tu función.
return false
solo evitará que los navegadores sigan el enlace al hacer clic.Si Javascript está desactivado el enlace funcionará como un enlace normal y sólo tiene que cargar
some/page.php
-si quiere que su enlace sea muerto cuando js es minusválidoshref="#"
fuente
No puede diseñar botones como enlaces de manera confiable en todos los navegadores. Lo he intentado, pero siempre hay algunos problemas extraños de relleno, margen o fuente en algún navegador. Vive dejando que el botón se vea como un botón, o usa onClick y preventDefault en un enlace.
fuente
Puede lograr esto usando CSS simple como se muestra en el siguiente ejemplo
fuente