HTML/CSS Как добавить значок изображения в input type="button"?

Я использую ниже CSS, но он помещает изображение в центр кнопки. Любой способ левого или правого выравнивания значка с помощью <input type="button">, чтобы текст и изображение соответствовали и выравнивались красиво?

background: url('/common/assets/images/icons/16x16/add.png');
background-position:center;
background-repeat:no-repeat;

Ответ 1

Если вы абсолютно должны использовать input, попробуйте следующее:

background-image: url(...);
background-repeat: no-repeat;
background-position: <left|right>;
padding-<left|right>: <width of image>px;

Обычно проще использовать button с img внутри:

<button type="submit"><img> Text</button>

Однако реализации браузера button для отправки несовместимы, а также тот факт, что все значения кнопок отправляются при использовании button - который убивает обнаружение "какая кнопка нажата" в форме с несколькими отправками.

Ответ 2

Это должно делать то, что вы хотите, при условии, что ваше изображение кнопки составляет 16 на 16 пикселей.

<input type="button" value="Add a new row" class="button-add" />
input.button-add {
    background-image: url(/images/buttons/add.png); /* 16px x 16px */
    background-color: transparent; /* make the button transparent */
    background-repeat: no-repeat;  /* make the background image appear only once */
    background-position: 0px 0px;  /* equivalent to 'top left' */
    border: none;           /* assuming we don't want any borders */
    cursor: pointer;        /* make the cursor like hovering over an <a> element */
    height: 16px;           /* make this the size of your image */
    padding-left: 16px;     /* make text start to the right of the image */
    vertical-align: middle; /* align the text vertically centered */
}

Пример кнопки:

example button

Обновление

Если вы используете Less, этот mixin может пригодиться.

.icon-button(@icon-url, @icon-size: 16px, @icon-inset: 10px, @border-color: #000, @background-color: transparent) {
    height: @icon-size * 2;
    padding-left: @icon-size + @icon-inset * 2;
    padding-right: @icon-inset;
    border: 1px solid @border-color;
    background: @background-color url(@icon-url) no-repeat @icon-inset center;
    cursor: pointer;
}

input.button-add {
    .icon-button("http://placehold.it/16x16", @background-color: #ff9900);
}

Вышеприведенное компилируется в

input.button-add {
  height: 32px;
  padding-left: 36px;
  padding-right: 10px;
  border: 1px solid #000000;
  background: #ff9900 url("http://placehold.it/16x16") no-repeat 10px center;
  cursor: pointer;
}

JSFiddle

Ответ 3

<button type="submit" style="background-color:transparent; border-color:transparent;"> 
  <img src="images/button/masuk.png" height="35"/>
</button>
<button type="reset" style="background-color:transparent; border-color:transparent;"> 
  <img src="images/button/reset.png" height="35"/>
</button>

Надеюсь, это поможет вам.

Ответ 4

Если вы используете спрайты, это становится невозможным, и элемент должен быть обернут.

.btn{
    display: inline-block;
    background: blue;
    position: relative;
    border-radius: 5px;
}
.input, .btn:after{
    color: #fff;
}
.btn:after{
    position: absolute;
    content: '@';
    right: 0;
    width: 1.3em;
    height: 1em;
}
.input{
    background: transparent;
    color: #fff;
    border: 0;
    padding-right: 20px;
    cursor: pointer;
    position: relative;
    padding: 5px 20px 5px 5px;
    z-index: 1;
}

Посмотрите эту скрипту: http://jsfiddle.net/AJNnZ/

Ответ 5

вы можете попробовать этот трюк!

1st) выполните следующее:

<label for="img">
   <input type="submit" name="submit" id="img" value="img-btn">
   <img src="yourimage.jpg" id="img">
</label>

2nd) style it!

<style type="text/css">
   img:hover {
       cursor: pointer;
   }
   input[type=submit] {
       display: none;
   }
</style>

Это не чисто, но он выполнит эту работу!

Ответ 6

Я бы сделал это:

Используйте тип кнопки

 <button type="submit" style="background-color:rgba(255,255,255,0.0); border:none;" id="resultButton" onclick="showResults();"><img src="images/search.png" /></button>

Я использовал фоновый цвет: rgba (255,255,255,0,0); Так что исходный цвет фона кнопки исчезает. То же самое с границей: нет; это займет оригинальную границу.

Ответ 7

Просто добавьте значок в элемент кнопки, вот пример

   <button class="social-signup facebook"> 
     <i class="fa fa-facebook-official"></i>  
      Sign up with Facebook</button>

Ответ 8

вы можете попробовать вставить изображение внутри кнопки http://jsfiddle.net/s5GVh/1415/

<button type="submit"><img src='https://aca5.accela.com/bcc/app_themesDefault/assets/gsearch_disabled.png'/></button>

Ответ 9

<img src="http://www.pic4ever.com/images/2mpe5id.gif">
            <button class="btn btn-<?php echo $settings["button_background"]; ?>" type="submit"><?php echo $settings["submit_button_text"]; ?></button>