Я не советую использовать <button>
таким образом. Стилизировать его действительно сложно, и вам придётся писать специфические стили для разных браузеров.
Мне нужно было достичь чего-то очень похожего, и после обработки большого количества исключений и сложного позиционирования для поддержки различных браузеров, я выбрал эту структуру:
<div class="button">
<span>
<button>Text</button>
</span>
</div>
С помощью тега кнопки сбрасывать таким образом:
button {
background:none repeat scroll 0 0 transparent;
border:0 none;
font-family:inherit;
font-size:inherit;
font-weight:inherit;
margin:0;
overflow:visible;
padding:0;
position:relative;
}
Вы даже можете использовать js для переноса <button>
при загрузке страницы. Эта система оказалась гораздо более надежной и надежной. Требует меньше CSS и почти без стилей для конкретного браузера.
Обновление:
Как я прокомментировал ниже, элемент обертки не должен быть тегом <a>
. Помните, что нам нужен <button>
, чтобы сохранить его функциональность, нам просто нужно, чтобы он был только текстовым (форма все равно будет отправлена при вводе).
Вы по-прежнему можете повторно использовать любой CSS, который вы можете использовать для превращения стандартных ссылок в расширяемые виджеты кнопок, только в этом случае это: <div>
вместо <a>
.