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:
button {
align-items: normal;
background-color: rgba(0,0,0,0);
border-color: rgb(0, 0, 238);
border-style: none;
box-sizing: content-box;
color: rgb(0, 0, 238);
cursor: pointer;
display: inline;
font: inherit;
height: auto;
padding: 0;
perspective-origin: 0 0;
text-align: start;
text-decoration: underline;
transform-origin: 0 0;
width: auto;
-moz-appearance: none;
-webkit-logical-height: 1em; /* Chrome ignores auto, so we have to use this hack to set the correct height */
-webkit-logical-width: auto; /* Chrome ignores auto, but here for completeness */
}
/* Mozilla uses a pseudo-element to show focus on buttons, */
/* but anchors are highlighted via the focus pseudo-class. */
@supports (-moz-appearance:none) { /* Mozilla-only */
button::-moz-focus-inner { /* reset any predefined properties */
border: none;
padding: 0;
}
button:focus { /* add outline to focus pseudo-class */
outline-style: dotted;
outline-width: 1px;
}
}
El ejemplo anterior solo modifica button
elementos para mejorar la legibilidad, pero también se puede ampliar fácilmente para modificar input[type="button"], input[type="submit"]
y input[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.
/* Obsolete code! Please use the code of the updated answer. */
input[type="button"], input[type="button"]:focus, input[type="button"]:active,
button, button:focus, button:active {
/* Remove all decorations to look like normal text */
background: none;
border: none;
display: inline;
font: inherit;
margin: 0;
padding: 0;
outline: none;
outline-offset: 0;
/* Additional styles to look like a link */
color: blue;
cursor: pointer;
text-decoration: underline;
}
/* Remove extra space inside buttons in Firefox */
input[type="button"]::-moz-focus-inner,
button::-moz-focus-inner {
border: none;
padding: 0;
}