Как изменить изображение кнопки ввода с помощью CSS?
Итак, я могу создать кнопку ввода с изображением с помощью
<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, если это имеет значение.
11 ответов:
Если вы хотите стилизовать кнопку с помощью CSS, сделайте ее кнопкой type= "submit"вместо type="image". type= "image" ожидает SRC, который вы не можете установить в CSS.
обратите внимание, что Safari не позволит вам стилизовать любую кнопку так, как вы ищете. Если вам нужна поддержка Safari, вам нужно будет разместить изображение и иметь функцию onclick, которая отправляет форму.
можно использовать
<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/
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.
этой статье 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; }
вот более простое решение, но без дополнительных окружающих 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/
Вы можете использовать пустые.gif (1px прозрачное изображение) в качестве цели в вашем теге
<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; }
вот что сработало для меня в 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; }
Я думаю, что следующее является лучшим решением:
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;}
возможно, вы могли бы просто импортировать .JS-файл также и имеет замену изображения там, в JavaScript.
Comments