2014-01-07 1 views
5

Я пытаюсь получить кнопку с градиентом фона и изображения. Это то, что я до сих пор:Кнопка с фоном градиент и изображение с использованием html и css

jsfiddle/D6xKD/

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

Примечание: Это решение я получил из других ссылок о кнопке с градиентным фоном и фоновым изображением.

Мой вопрос: как получить градиент и изображение для кросс-браузеров, включая ie7 и выше?

HTML:

CSS:

.button{ 
    color: #FFFFFF; 
    display: inline-block; 
    font-family:Arial; 
    font-size: 10px; 
    font-weight: normal; 
    padding: 9px 36px 9px 4px; 
    text-decoration: none; 
    margin:4px auto auto; 
    cursor:pointer; 
    border:0px; 
    background: #3ba93d; 
    background-position: 66px 4px; 
    background-repeat:no-repeat; 
    background-image: url(http://goo.gl/mw5HWR); /* fallback */ 
    background-image: url(http://goo.gl/mw5HWR), -webkit-gradient(linear, left top, left bottom, from(#3ba93d), to(#27842a)); /* Saf4+, Chrome */ 
    background-image: url(http://goo.gl/mw5HWR), -webkit-linear-gradient(top, #3ba93d, #27842a); /* Chrome 10+, Saf5.1+ */ 
    background-image: url(http://goo.gl/mw5HWR), -moz-linear-gradient(top, #3ba93d, #27842a); /* FF3.6+ */ 
    background-image: url(http://goo.gl/mw5HWR), -ms-linear-gradient(top, #3ba93d, #27842a); /* IE10 */ 
    background-image: url(http://goo.gl/mw5HWR), -o-linear-gradient(top, #3ba93d, #27842a); /* Opera 11.10+ */ 
    background-image: url(http://goo.gl/mw5HWR), linear-gradient(top, #3ba93d, #27842a); /* W3C */ 
    } 

Спасибо заранее.

+0

удалить 'background- position' – skshoyeb

+0

Почему так сложно? просто используйте изображение в градиенте – chris

+0

да, я согласен с @chris ツ, вам не нужно использовать все эти сложные вещи. Просто используйте обычный 'linear-gradient()' и удалите 'background-position'. Вот так :) – skshoyeb

ответ

2

могли бы попробовать:

 <button class="button" onclick="submit();" type="button">Text button <span></span></button> 

     <style> 
     .button{ 
      color: #FFFFFF; 
      font-family:Arial; 
      font-size: 10px; 
      font-weight: normal; 
      padding: 0; 
      padding-left: 20px; 
      height: 36px; 
      width: 120px; 
      margin:4px auto auto; 
      text-align: left; 
      cursor:pointer; 
      border:0px; 
      background: #3ba93d; 
      background-position: 66px 4px; 
      background-repeat:no-repeat; 
      background: #3ba93d; /* fallback */ 
      background: -webkit-gradient(linear, left top, left bottom, from(#3ba93d), to(#27842a)); /* Saf4+, Chrome */ 
      background: -webkit-linear-gradient(top, #3ba93d, #27842a); /* Chrome 10+, Saf5.1+ */ 
      background: -moz-linear-gradient(top, #3ba93d, #27842a); /* FF3.6+ */ 
      background: -ms-linear-gradient(top, #3ba93d, #27842a); /* IE10 */ 
      background: -o-linear-gradient(top, #3ba93d, #27842a); /* Opera 11.10+ */ 
      background: linear-gradient(top, #3ba93d, #27842a); /* W3C */ 
      } 
      .button span { 
      position: absolute; 
      top: 17px; 
      left: 100px; 
      width: 20px; 
      height: 24px; 
      background: url(http://goo.gl/mw5HWR); 
      } 
      </style> 

JS Fiddle

+0

Спасибо за эту технику о том, что у вас есть отдельная функция для изображения в кнопке. Это действительно хорошо работает с совместимостью 7 и выше. – CodeMonk

+0

не проблема, просто рада помочь –

0

Этого стиль толкая градиент над:

background-position: 66px 4px; 

Если вы удалите его, градиентные заливки кнопки.

http://jsfiddle.net/D6xKD/9/

Если вам нужно яблоко, чтобы быть в определенном положении, я бы рекомендовал расширить холст вашего изображения, чтобы помочь в его размещении.

+0

Решено. См. Мои комментарии :) Спасибо за предложение. [jsfiddle.net/D6xKD/11](http://jsfiddle.net/D6xKD/11/) – CodeMonk

+0

Прохладный! Я не знаю, почему фоновые градиенты были сосредоточены на фоновых изображениях, рад, что вы его работаете! –

+0

Спасибо. Насколько я понимаю, градиент был позиционирован с изображением, так как оба свойства фона и фоновая позиция задают положение для всех фонов внутри функции (класса или id). Также, говоря о совместимости, решение, предоставленное Саймоном, хорошо, так как оно сохраняет изображение даже на ie7, 8 и 9. – CodeMonk

1

на основе @ Simon-Davies ответить

вы также можете ommit элемент "Пролет":

.button{ 
      color: #FFFFFF; 
      font-family:Arial; 
      font-size: 10px; 
      font-weight: normal; 
      padding: 0; 
      padding-left: 20px; 
      height: 36px; 
      width: 120px; 
      margin:4px auto auto; 
      text-align: left; 
      cursor:pointer; 
      border:0px; 
      background: #3ba93d; 
      background-position: 66px 4px; 
      background-repeat:no-repeat; 
      background: #3ba93d; /* fallback */ 
      background: -webkit-gradient(linear, left top, left bottom, from(#3ba93d), to(#27842a)); /* Saf4+, Chrome */ 
      background: -webkit-linear-gradient(top, #3ba93d, #27842a); /* Chrome 10+, Saf5.1+ */ 
      background: -moz-linear-gradient(top, #3ba93d, #27842a); /* FF3.6+ */ 
      background: -ms-linear-gradient(top, #3ba93d, #27842a); /* IE10 */ 
      background: -o-linear-gradient(top, #3ba93d, #27842a); /* Opera 11.10+ */ 
      background: linear-gradient(top, #3ba93d, #27842a); /* W3C */ 
      } 
      :before { 
      content : ""; 
      position: absolute; 
      top: 17px; 
      left: 100px; 
      width: 20px; 
      height: 24px; 
      background: url(your_image_url) no-repeat; 
      } 
} 
Смежные вопросы