Il codice della risposta accettata funziona nella maggior parte dei casi, ma per ottenere un pulsante che si comporta davvero come un collegamento è necessario un po 'più di codice. È particolarmente difficile ottenere lo stile dei pulsanti focalizzati direttamente su Firefox (Mozilla).
Il seguente CSS garantisce che le ancore e i pulsanti abbiano le stesse proprietà CSS e si comportino allo stesso modo su tutti i browser comuni:
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;
}
}
L'esempio sopra modifica solo gli button
elementi per migliorare la leggibilità, ma può essere facilmente esteso anche alla modifica input[type="button"], input[type="submit"]
e agli input[type="reset"]
elementi. Puoi anche usare una classe, se vuoi far sembrare solo alcuni pulsanti come ancore.
Guarda questo JSFiddle per una demo live.
Si noti inoltre che questo applica lo stile di ancoraggio predefinito ai pulsanti (ad es. Colore blu del testo). Quindi, se vuoi cambiare il colore del testo o qualsiasi altra cosa di ancore e pulsanti, dovresti farlo dopo il CSS sopra.
Il codice originale (vedi frammento) in questa risposta era completamente diverso 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;
}