私のコードでは、background-position-y
は機能しません。 Chrome大丈夫ですが、Firefoxでは動作しません。
誰にも解決策がありますか?
Position-xが0の場合、書く以外に解決策はありません。
background-position: 0 100px;
background-position-xは、IEからの非標準の実装です。 Chromeはコピーしましたが、悲しいことにfirefoxではありません...
ただし、大きな背景に別々のスプライトがあり、行と列が異なることを意味する場合、このソリューションは完璧ではない可能性があります...全体像を別々の画像に分離するか、CSSで異なる組み合わせを記述することをお勧めします...スプライトの数に応じて、どちらかが最良の選択になります。
background: url("path-to-url.png") 89px 78px no-repeat;
background-image: url("path");
background-position-x: 89px;
background-position-y: 78px;
background-repeat: no-repeat;
Firefox 49 リリース予定 —サポートbackground-position-[xy]
— 2016年9月。31までの古いバージョンでは、 CSS変数 を使用して、background-position-x
または background-position-y
。 CSS変数が勧告候補ステータスに達しました 2015年12月 。
以下は、ホバー上のスプライト画像の背景位置軸を変更する完全にクロスブラウザの例です。
:root {
--bgX: 0px;
--bgY: 0px;
}
a {
background-position: 0px 0px;
background-position: var(--bgX) var(--bgY);
}
a:hover, a:focus { background-position-x: -54px; --bgX: -54px; }
a:active { background-position-x: -108px; --bgX: -108px; }
a.facebook { background-position-y: -20px; --bgY: -20px; }
a.gplus { background-position-y: -40px; --bgY: -40px; }
background-position-y :10px;
は、Firefox Webブラウザーでは動作していません。
このタイプの構文に従う必要があります:
background-position: 10px 15px;
10pxは「position-x」にバインドされ、15pxは「position-y」にバインドされます
100%実用的なソリューション
これに従ってください [〜#〜] url [〜#〜] その他の例
background: url("path") 89px 78px no-repeat;
画像とともに背景が必要な場合は機能しません。使用する:
background: orange url("path-to-image.png") 89px 78px no-repeat;
background-positionを直接使用しないのはなぜですか?
使用:
background-position : 40% 56%;
代わりに:
background-position-x : 40%;
background-position-y : 56%
これは私のために働いた:
a {
background-image: url(/image.jpg);
width: 228px;
height: 78px;
display: inline-block;
}
a:hover {
background-position: 0 -78px;
background-repeat: no-repeat;
}
ただし、大きな背景に別々のスプライトがあり、行と列が異なることを意味する場合、このソリューションは完璧ではない可能性があります...全体像を別々の画像に分離するか、CSSで異なる組み合わせを記述することをお勧めします...スプライトの数に応じて、どちらかが最良の選択になります。
鉱山には、列と行を持つスプライトのような表を持つOrabîgが述べているように、正確な問題があります。
以下は私がjsを使用して回避策として使用したものです
firefoxFixBackgroundposition:function(){
$('.circle').on({
mouseenter: function(){
$(this).css('background-position',$(this).css('background-position').split(' ')[0]+' -10px');
},
mouseleave: function(){
$(this).css('background-position',$(this).css('background-position').split(' ')[0]+' 0');
}
});
}
オフセットの測定値を明示的に述べてください。今日、この問題に出くわしました。これは、ブラウザーがCSSで指定した値をどのように解釈するかによるものです。
たとえば、これはChromeで完全に機能します。
background: url("my-image.png") 100 100 no-repeat;
ただし、FirefoxとIEの場合、次のように記述する必要があります。
background: url("my-image.png") 100px 100px no-repeat;
お役に立てれば。