2

ボタンがあり、それにグラデーションを追加しました。

コードは次のとおりです。

.mybutton {
    background: #258dc8; /* Old browsers */
    background: -moz-linear-gradient(top,  #258dc8 0%, #258dc8 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#258dc8), color-stop(100%,#258dc8)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top,  #258dc8 0%,#258dc8 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top,  #258dc8 0%,#258dc8 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top,  #258dc8 0%,#258dc8 100%); /* IE10+ */
    background: linear-gradient(to bottom,  #258dc8 0%,#258dc8 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#258dc8', endColorstr='#258dc8',GradientType=0 ); /* IE6-9 */
}

私の問題は、ホバー状態でグラデーションを取り除き、無地の背景色にしたいことです。

.mybutton:hover {
    background-color: #333333;
}

何らかの理由で、グラデーションが取り除かれていないため、これは機能していません。グラデーションを変更できる唯一の方法は、別のグラデーションを追加することです。

グラデーションを無効にする方法はありますか?

私も試しましbackground: none;たが、これはうまくいきませんでした。

4

1 に答える 1

2

グラデーションは画像の値であるため、設定background-colorだけではグラデーションには影響しません。background-image具体的には、プロパティをオーバーライドする必要があります (またfilter、それを行っている間も):

.mybutton:hover {
    background-color: #333333;
    background-image: none;
    filter: none;
}

省略形を使用すると、色と画像の両方background: noneを設定することになります (にマップし、色を省略すると に設定されます)、代わりに透明な背景が得られます。nonebackground-imagetransparent

もちろん、省略形を使用して代わりに色だけを宣言することもでき、画像は暗黙的に次のようになりますnone

.mybutton:hover {
    background: #333333;
    filter: none;
}
于 2012-08-04T21:10:42.797 に答える