Wenn Ihre Position-x 0 ist, gibt es keine andere Lösung als das Schreiben:
background-position:0100px;
background-position-x ist eine nicht standardmäßige Implementierung, die vom IE stammt. Chrome hat es kopiert, aber leider nicht Firefox ...
Diese Lösung ist jedoch möglicherweise nicht perfekt, wenn Sie separate Sprites auf einem großen Hintergrund haben, wobei Zeilen und Spalten unterschiedliche Bedeutungen haben ... (z. B. unterschiedliche Logos in jeder Zeile, rechts ausgewählt / schwebend, links einfach) In diesem Fall Ich würde vorschlagen, das Gesamtbild in separate Bilder zu trennen oder die verschiedenen Kombinationen in das CSS zu schreiben ... Abhängig von der Anzahl der Sprites könnte das eine oder andere die beste Wahl sein.
lustig, dass Firefox das Markup "Stattdessen" nicht unterstützt, aber ja, es funktioniert .. ty;)
Adrian
16
Firefox 49 wird - mit Unterstützung für background-position-[xy]- im September 2016 veröffentlicht. Bei älteren Versionen bis 31 können Sie CSS-Variablen verwenden , um den Hintergrund auf einer einzelnen Achse zu positionieren, ähnlich wie bei background-position-xoder background-position-y. CSS-Variablen haben im Dezember 2015 den Status der Kandidatenempfehlung erreicht .
Das folgende Beispiel ist ein vollständig browserübergreifendes Beispiel für das Ändern der Hintergrundpositionsachsen für Sprite-Bilder beim Hover:
Es ist fast ein Jahr in der Schwebe gewesen, und Firefox ist immer noch die einzige Implementierung. Kein gutes Zeichen.
BoltClock
1
@BoltClock: Es ist unter Berücksichtigung von Microsoft, mit einem fairen paar Stimmen hinter sich, und die Entwicklung nur (wieder) gestartet für Chrome. Für diesen speziellen Anwendungsfall können heute jedoch CSS-Variablen verwendet werden, da der einzige Browser, der sie implementiert, der einzige ist, der sie zur Simulation der Hintergrundposition x / y benötigt.
Stellen Sie sicher, dass Sie die Messung Ihres Offsets explizit angeben. Ich bin heute genau auf dieses Problem gestoßen, und es lag daran, wie Browser die Werte interpretieren, die Sie in Ihrem CSS angeben.
Dies funktioniert beispielsweise in Chrome einwandfrei:
background: url("my-image.png")100100no-repeat;
Für Firefox und IE müssen Sie jedoch Folgendes schreiben:
Diese Lösung ist jedoch möglicherweise nicht perfekt, wenn Sie separate Sprites auf einem großen Hintergrund haben, wobei Zeilen und Spalten unterschiedliche Bedeutungen haben ... (z. B. unterschiedliche Logos in jeder Zeile, rechts ausgewählt / schwebend, links einfach) In diesem Fall Ich würde vorschlagen, das Gesamtbild in separate Bilder zu trennen oder die verschiedenen Kombinationen in das CSS zu schreiben ... Abhängig von der Anzahl der Sprites könnte das eine oder andere die beste Wahl sein.
Meins hat das genaue Problem, wie von Orabîg angegeben, das eine Tabelle wie Sprite hat, die Spalten und Zeilen enthält.
Unten ist, was ich als Workaround mit js verwendet habe
background-position-x
und-y
wird in Firefox 49 unterstützt: developer.mozilla.org/en-US/docs/Web/CSS/…Antworten:
Wenn Ihre Position-x 0 ist, gibt es keine andere Lösung als das Schreiben:
background-position-x ist eine nicht standardmäßige Implementierung, die vom IE stammt. Chrome hat es kopiert, aber leider nicht Firefox ...
Diese Lösung ist jedoch möglicherweise nicht perfekt, wenn Sie separate Sprites auf einem großen Hintergrund haben, wobei Zeilen und Spalten unterschiedliche Bedeutungen haben ... (z. B. unterschiedliche Logos in jeder Zeile, rechts ausgewählt / schwebend, links einfach) In diesem Fall Ich würde vorschlagen, das Gesamtbild in separate Bilder zu trennen oder die verschiedenen Kombinationen in das CSS zu schreiben ... Abhängig von der Anzahl der Sprites könnte das eine oder andere die beste Wahl sein.
quelle
Benutze das
An Stelle von
quelle
Firefox 49 wird - mit Unterstützung für
background-position-[xy]
- im September 2016 veröffentlicht. Bei älteren Versionen bis 31 können Sie CSS-Variablen verwenden , um den Hintergrund auf einer einzelnen Achse zu positionieren, ähnlich wie beibackground-position-x
oderbackground-position-y
. CSS-Variablen haben im Dezember 2015 den Status der Kandidatenempfehlung erreicht .Das folgende Beispiel ist ein vollständig browserübergreifendes Beispiel für das Ändern der Hintergrundpositionsachsen für Sprite-Bilder beim Hover:
quelle
Sie sollten diese Art von Syntax befolgen:
10px ist an "Position-x" und 15px an "Position-y" gebunden.
100% funktionierende Lösung
Folgen Sie dieser URL für weitere Beispiele
quelle
Warum benutzt du die Hintergrundposition nicht direkt?
Verwenden:
Anstatt:
quelle
Funktioniert nicht, wenn Sie einen Hintergrund zusammen mit dem Bild wünschen. Verwenden Sie also:
quelle
Das hat bei mir funktioniert:
quelle
Stellen Sie sicher, dass Sie die Messung Ihres Offsets explizit angeben. Ich bin heute genau auf dieses Problem gestoßen, und es lag daran, wie Browser die Werte interpretieren, die Sie in Ihrem CSS angeben.
Dies funktioniert beispielsweise in Chrome einwandfrei:
Für Firefox und IE müssen Sie jedoch Folgendes schreiben:
Hoffe das hilft.
quelle
Meins hat das genaue Problem, wie von Orabîg angegeben, das eine Tabelle wie Sprite hat, die Spalten und Zeilen enthält.
Unten ist, was ich als Workaround mit js verwendet habe
quelle