Код прийнятої відповіді працює в більшості випадків, але щоб отримати кнопку, яка справді веде себе як посилання, потрібно трохи більше коду. Особливо складно придбати стилізовані кнопки прямо на Firefox (Mozilla).
Наведений нижче CSS гарантує, що якір та кнопки мають однакові властивості CSS та поводяться однаково у всіх звичайних браузерах:
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;
}
}
Наведений вище приклад змінює лише button
елементи для поліпшення читабельності, але їх можна легко розширити, щоб змінити input[type="button"], input[type="submit"]
і input[type="reset"]
елементи. Ви також можете використовувати клас, якщо ви хочете, щоб лише певні кнопки виглядали як якір.
Дивіться цей JSFiddle для прямої демонстрації.
Також врахуйте, що це стосується стилю якоря за замовчуванням до кнопок (наприклад, синій колір тексту). Тож якщо ви хочете змінити колір тексту або що-небудь інше з якорів і кнопок, вам слід зробити це після CSS, наведеного вище.
Оригінальний код (див. Фрагмент) у цій відповіді був зовсім іншим та неповним.
/* 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;
}