2014-01-07 21 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

削除を 'バックグラウンドポジション ' – 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)の位置を設定するため、画像とともに配置されていました。また、互換性について話をすると、Simonによって提供される解決策は、イメージがie7,7,8であっても良好です。 – CodeMonk

1

に答えて、あなたはまた、 "スパン" 要素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; 
      } 
} 
関連する問題