Итак, я могу создать кнопку ввода с изображением, используя
<INPUT type = "image" src = "/images/Btn.PNG" value = "">
Но я не могу добиться того же поведения с помощью CSS. Например, я пробовал
<INPUT type = "image" class = "myButton" value = "">
где myButton определен в файле CSS как
.myButton {
background:url(/images/Btn.PNG) no-repeat;
cursor:pointer;
width: 200px;
height: 100px;
border: none;
}
Если бы это все, что я хотел сделать, я мог бы использовать исходный стиль, но я хочу изменить внешний вид кнопки при наведении курсора (используя класс myButton:hover). Я знаю, что ссылки хороши, потому что мне удалось загрузить их в качестве фонового изображения для других частей страницы (просто для проверки). Я нашел в сети примеры того, как это сделать с помощью JavaScript, но я ищу решение CSS.
Я использую Firefox 3.0.3, если это имеет значение.






Если вы хотите стилизовать кнопку с помощью CSS, сделайте ее кнопкой type = "submit" вместо type = "image". type = "image" ожидает SRC, который вы не можете установить в CSS.
Обратите внимание, что Safari не позволит вам стилизовать любую кнопку так, как вы ищете. Если вам нужна поддержка Safari, вам нужно разместить изображение и иметь функцию onclick, которая отправляет форму.
Safari 3 и более поздние версии позволяют стилизовать кнопки по своему усмотрению. И для большей совместимости используйте вместо этого <button>.
re для большей совместимости / <button> может решить другие проблемы совместимости.
ребята, проверьте ответ SI Web Design ниже. пожалуйста, проголосуйте, если этот ответ лучше.
Эта статья о Замена изображения CSS для кнопок отправки может помочь.
"Используя этот метод, вы получите интерактивное изображение, когда таблицы стилей активны, и стандартную кнопку, когда таблицы стилей отключены. Хитрость заключается в том, чтобы применить методы замены изображения к тегу кнопки и использовать его в качестве кнопки отправки вместо с использованием ввода.
А поскольку границы кнопок стираются, рекомендуется также изменить курсор кнопки на
рука в форме руки, используемая для ссылок, так как это дает пользователям визуальную подсказку ".
Код CSS:
#replacement-1 {
width: 100px;
height: 55px;
margin: 0;
padding: 0;
border: 0;
background: transparent url(image.gif) no-repeat center top;
text-indent: -1000em;
cursor: pointer; /* hand-shaped cursor */
cursor: hand; /* for IE 5.x */
}
#replacement-2 {
width: 100px;
height: 55px;
padding: 55px 0 0;
margin: 0;
border: 0;
background: transparent url(image.gif) no-repeat center top;
overflow: hidden;
cursor: pointer; /* hand-shaped cursor */
cursor: hand; /* for IE 5.x */
}
form>#replacement-2 { /* For non-IE browsers*/
height: 0px;
}
Проблема с этим методом заключается в том, что, если клиент отключает изображения в своем браузере, он вообще не видит кнопки!
Вы можете использовать тег <button>. Для отправки просто добавьте type = "submit". Затем используйте фоновое изображение, если вы хотите, чтобы кнопка отображалась в виде рисунка.
Вот так:
<button type = "submit" style = "border: 0; background: transparent">
<img src = "/images/Btn.PNG" width = "90" height = "50" alt = "submit" />
</button>
Более подробная информация: http://htmldog.com/reference/htmltags/button/
Просто помните, что IE (5,6,7 и 8 (в нестандартном режиме) отправит .innerHTML кнопки, а не атрибут значения, который вы установили для кнопки!
Но граница кнопки <Остается inf Изображение закрыта.
@scunlife, Дмитрий в дополнение к публикации innerHtml заставляет большинство веб-серверов не принимать опубликованные данные, так как это пахнет атакой инъекции
Возможно, вы могли бы просто импортировать файл .js и заменить изображение там, в JavaScript.
Это серьезно переборщить.
HTML
<div class = "myButton"><INPUT type = "submit" name = "" value = ""></div>
CSS
div.myButton input {
background:url(/images/Btn.PNG) no-repeat;
cursor:pointer;
width: 200px;
height: 100px;
border: none;
}
Это будет работать где угодно, даже в Safari.
Это лучший ответ. Спасибо
Вот более простое решение, но без лишних окружающих div:
<input type = "submit" value = "Submit">
CSS использует базовую технику замены изображений. Для бонусных баллов это показано с использованием спрайта изображения:
<style>
input[type = "submit"] {
border: 0;
background: url('sprite.png') no-repeat -40px left;
text-indent: -9999em;
line-height:3000;
width: 50px;
height: 20px;
}
</style>
Источник: http://work.arounds.org/issue/21/using-css-sprites-with-input-type-submit-buttons/
Я бы нажал +2, если бы была кнопка для этого ответа для селектора атрибута CSS (type = "submit") и рекомендации для спрайтов.
Я не контролирую этот сайт. Хорошо, что я изложил решение в своем ответе.
Последняя сохраненная версия ссылки: web.archive.org/web/20140112085651/http://work.arounds.org/…
Вот что у меня сработало в Internet Explorer, небольшом изменении решения от Philoye.
>#divbutton
{
position:relative;
top:-64px;
left:210px;
background: transparent url("../../images/login_go.png") no-repeat;
line-height:3000;
width:33px;
height:32px;
border:none;
cursor:pointer;
}
Вы можете использовать blank.gif (прозрачное изображение размером 1 пиксель) в качестве цели в своем теге.
<input type = "image" src = "img/blank.gif" class = "button">
а затем стиль фона в css:
.button {border:0;background:transparent url("../img/button.png") no-repeat 0 0;}
.button:hover {background:transparent url("../img/button-hover.png") no-repeat 0 0;}
Вариант предыдущих ответов. Я обнаружил, что необходимо установить непрозрачность, конечно, это будет работать в IE6 и далее. Возникла проблема с решением для высоты строки в IE8, когда кнопка не реагировала. И с этим вы также получите курсор в виде руки!
<div id = "myButton">
<input id = "myInputButton" type = "submit" name = "" value = "">
</div>
#myButton {
background: url("form_send_button.gif") no-repeat;
width: 62px;
height: 24px;
}
#myInputButton {
background: url("form_send_button.gif") no-repeat;
opacity: 0;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
width: 67px;
height: 26px;
cursor: pointer;
cursor: hand;
}
Я думаю, что лучшим решением будет следующее:
css:
.edit-button {
background-image: url(edit.png);
background-size: 100%;
background-repeat:no-repeat;
width: 24px;
height: 24px;
}
html:
<input class = "edit-button" type = "image" src = "transparent.png" />
Мое решение без js и без изображений таково:
* HTML:
<input type=Submit class=continue_shopping_2
name=Register title = "Confirm Your Data!"
value = "confirm your data">
* CSS:
.continue_shopping_2:hover{
background-color:#FF9933;
text-decoration:none;
color:#FFFFFF;}
.continue_shopping_2{
padding:0 0 3px 0;
cursor:pointer;
background-color:#EC5500;
display:block;
text-align:center;
margin-top:8px;
width:174px;
height:21px;
border-radius:5px;
border-width:1px;
border-style:solid;
border-color:#919191;
font-family:Verdana;
font-size:13px;
font-style:normal;
line-height:normal;
font-weight:bold;
color:#FFFFFF;}
Таким образом нецелесообразно размещать случайные ссылки на ваш сайт. Я не вижу там вообще никакого «примера». Если вы хотите создать пример для демонстрации, пожалуйста, сделайте такой пример, который сам по себе служит примером, а не в контексте всего действующего сайта.
это правильно ... дело в том, что невозможно получить доступ к нужной странице напрямую ... только добавление 1 элемента в корзину и переход к оформлению заказа.
Предположим, вы не можете изменить тип ввода или даже src. У вас есть ТОЛЬКО css для игры.
Если вы знаете нужную высоту и у вас есть URL-адрес фонового изображения, которое вы хотите использовать вместо этого, вам повезло.
Установите высоту на ноль и высоту padding-top на желаемую высоту. Это уберет исходное изображение из поля зрения, давая вам совершенно чистое пространство для отображения фонового изображения css.
Работает в Chrome. Не знаю, работает ли это в IE. Едва ли что-нибудь умное делает, так что, наверное, нет.
#daft {
height: 0;
padding-top: 100px;
width: 100px;
background-image: url(clever.jpg);
}<input type = "image" src = "daft.jpg" id = "daft">
Спасибо. Использование "submit" вместо изображения загрузило изображение.