Input type = "image" показывает нежелательную границу в Chrome и неработающую ссылку в IE7

Я еще не нашел решение...

Я пробовал все

border:0;
border:none;
outline:none;

без везения... и самое смешное - это сломанный значок ссылки в IE7, который перекрывает мое изображение.

Любое предложение? ссылка здесь

HTML (сгенерированный WordPress)

<form id="searchform" method="get" action="http://eezzyweb.com/">
   <div>
  <input id="s" name="s" type="text" value="" size="32" tabindex="1"/>
  <input id="searchsubmit" name="searchsubmit" type="image" value="" tabindex="2"/>
   </div>
</form>

CSS

input#s{
position:relative;
width:245px;
height:28px;
border:0;
vertical-align:bottom;
background:url(images/input-search-bkg.png) 0 0 no-repeat;
}

#searchsubmit {
display:inline-block;
background:url(images/submit-bkg.png) 0 0 no-repeat;
width:30px;
height:30px;
border:0;
vertical-align:bottom;
}

Firefox и Opera отображают кнопку изображения в порядке, но в Chrome и Safari я получаю эту серая рамка вокруг нее. IE 7 и 8 добавляют символ (сломанный значок?) По моему изображению... Я озадачен.

Ответы

Ответ 1

Вы используете изображение в качестве фона. Почему бы не установить его как свойство src кнопки?

<input src="images/submit-bkg.png" id="searchsubmit" name="searchsubmit" type="image" value="" tabindex="2"/>

Когда вы устанавливаете type как image, вход ожидает также атрибут src..

Ссылка: http://www.w3.org/TR/html401/interact/forms.html#adef-src и http://www.w3.org/TR/html401/interact/forms.html#h-17.4.1

Ответ 2

Для справки, если вы хотите придерживаться CSS, чтобы дать кнопке изображение, по таким причинам, как предоставление правила: hover или: active, вы можете сохранить свой код как есть и добавить кнопку в невидимое изображение, я пошел с:

<input type='image' src='invisible.png'/>

Это означает, что его полностью прозрачное изображение, размер, похоже, не имеет значения, но я пошел с 1 px на 1px.

Ответ 3

Это сработало для меня:

input[type="image"]:focus {
    outline: none;
}

Ответ 4

Chrome, IE и Safari безумно разбирают код.

<input type="image" src="bleh.png">
<input type="image" src="bleh.gif">

не анализируется этими браузерами как

<input type="image" src="bleh.png"><input type="image" src="bleh.gif">

Поместите все входы изображения на одну и ту же физическую линию в закодированном документе. Я просто пробил целый через монитор с той же проблемой, пока не понял это.

Ответ 5

Это уродливо, но оно работает...

<input id="saveForm" style="border:0px;" type="image" name="submit" value="Submit" BORDER="0" src="./images/button_submit.png" />

Ответ 6

Попробуйте это

a:active {
 outline: none;
}
a:focus {
 -moz-outline-style: none;
}
a, input {
 outline-color: invert;
 outline-style: none;
 outline-width: medium;
}