background-position-y Firefox'ta (CSS aracılığıyla) çalışmıyor mu?


Yanıtlar:


120

Konum-x'iniz 0 ise, yazmaktan başka bir çözüm yoktur:

background-position: 0 100px;

background-position-x, IE'den gelen standart olmayan bir uygulamadır. Chrome bunu kopyaladı, ancak ne yazık ki firefox değil ...

Bununla birlikte, büyük bir arka planda farklı şeyler anlamına gelen satırlar ve sütunlar içeren ayrı sprite'larınız varsa bu çözüm mükemmel olmayabilir ... (örneğin, her satırda farklı logolar, sağda seçili / vurgulanmış, solda düz) Bu durumda, Büyük resmi ayrı görsellere ayırmanızı veya CSS'ye farklı kombinasyonları yazmanızı öneririm ... Sprite sayısına bağlı olarak, biri veya diğeri en iyi seçim olabilir.


Teşekkürler, harika yakalayış. Standartlara uygun olmam için -x ve -y kullanımlarımı kaldırdım. :)
Kenny Wyland

Hep FF ... garip olduğu gibi
Mladen Janjetovic

19

Bunu kullan

background: url("path-to-url.png") 89px 78px no-repeat;

Bunun yerine

background-image: url("path");
background-position-x: 89px;
background-position-y: 78px;
background-repeat: no-repeat;

3
firefox'un "Bunun yerine" işaretlemeyi desteklememesi komik, ama evet, işe yarıyor .. ty;)
Adrian

16

Firefox 49 ,background-position-[xy] Eylül 2016'da - desteği ile birlikte - piyasaya sürülecektir . 31'e kadar olan eski sürümler için , arka planı veya kullanımına benzer şekilde tek bir eksende konumlandırmak için CSS değişkenlerini kullanabilirsiniz . CSS değişkenleri Aralık 2015'te Aday Öneri durumuna ulaştı .background-position-xbackground-position-y

Aşağıda, fareyle üzerine gelindiğinde hareketli grafik görüntüleri için arka plan konumu eksenlerini değiştirmenin tam anlamıyla çapraz tarayıcı örneği verilmiştir:

: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;  }

Neredeyse bir yıl oldu, Firefox hala tek uygulama. İyi bir işaret değil.
BoltClock

1
@BoltClock: Microsoft tarafından değerlendiriliyor , arkasında birkaç oy var ve Chrome için geliştirme (yeniden) başladı . Bununla birlikte, bu özel kullanım durumu için, CSS değişkenleri bugün kullanılabilir, çünkü bunları uygulayan tek tarayıcı, arka plan-konum-x / y simülasyonuna ihtiyaç duyan tek tarayıcıdır.
Andy E

Güzel! Hiç tahmin ettiğimden daha geç geç kalınmış :)
BoltClock

2
Az önce fark ettim - CSS Değişkenleri CR yolunda . Ayrıca harika.
BoltClock

merhaba 2016! hala uygulama yok ...: \
ghettosoak

15

background-position-y :10px;olduğu çalışmıyor Firefox web tarayıcısında.

Bu tür sözdizimini izlemelisiniz:

background-position: 10px 15px;

10px, "position-x" ile ve 15px, "position-y" ile sınırlıdır

% 100 çalışan Çözüm

Daha fazla örnek için bu URL'yi izleyin


Bu, ff v. 38'de geçerlidir. Doğru çözüm olarak işaretlenmelidir. Sorunun tam olarak ne olduğunu başarır
mcabe

3

Neden doğrudan arka plan konumunu kullanmıyorsunuz ?

Kullanım:

background-position : 40% 56%;

Onun yerine:

background-position-x : 40%;
background-position-y : 56%

3
background: url("path") 89px 78px no-repeat;

Resimle birlikte bir arka plan istiyorsanız çalışmaz. Öyleyse kullan:

background: orange url("path-to-image.png") 89px 78px no-repeat;

1

Bu benim için çalıştı:

a {
    background-image: url(/image.jpg);
    width: 228px;
    height: 78px;
    display: inline-block;
}

a:hover {
    background-position: 0 -78px;
    background-repeat: no-repeat;
}

0

Ofsetinizin ölçümünü açıkça belirttiğinizden emin olun. Bugün tam olarak bu sorunla karşılaştım ve bunun nedeni tarayıcıların CSS'nizde sağladığınız değerleri nasıl yorumladıklarıydı.

Örneğin, bu Chrome'da mükemmel çalışır:

background: url("my-image.png") 100 100 no-repeat;

Ancak, Firefox ve IE için şunları yazmanız gerekir:

background: url("my-image.png") 100px 100px no-repeat;

Bu yardımcı olur umarım.


0

Bununla birlikte, büyük bir arka planda farklı şeyler anlamına gelen satırlar ve sütunlar içeren ayrı sprite'larınız varsa bu çözüm mükemmel olmayabilir ... (örneğin, her satırda farklı logolar, sağda seçili / vurgulanmış, solda düz) Bu durumda, Büyük resmi ayrı görsellere ayırmanızı veya CSS'ye farklı kombinasyonları yazmanızı öneririm ... Sprite sayısına bağlı olarak, biri veya diğeri en iyi seçim olabilir.

Sprite gibi sütun ve satırları olan bir tabloya sahip olan Orabîg'in ​​belirttiği gibi tam olarak benimki sorunu var.

Aşağıda js kullanarak geçici çözüm olarak kullandım

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');   
    }
  });      
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.