2012-02-13 24 views
27

Bir siteyi IE 7'yi desteklemek üzere uyarlamaya çalışıyorum, ancak birkaç öğeye sahibim, ancak sağda 69 piksele kaydırılıyor. IE9'da test ediyorum, sayfayı IE7 gibi gösterecek şekilde ayarlıyorum. Geliştirici modunu açtığımda ve "kenar boşluğu" nu çevreleyen öğeyi incelediğimde "offset" adı verilen bir parametre var.Internet Explorer kutu modeli - ofset nedir?

Bunu daha önce hiç duymamıştım ve Googling bana çok fazla yardımcı olmadı - sadece float-ofset ile ilgili bir şey bulmayı başardım, bu da aynı değildi, ancak bazı sorunları ortadan kaldırmak için var olduğunu farz ediyorum. quirks modunun Bu ofset parametresini nasıl ortadan kaldırabilirim? Açıkçası

Ben IE-7 özgü stil kurdunuz ve bu bağlantıyı benim test ortamında giderek sorunu kendi başınıza test edebilirsiniz:

bir çözüm Bulunan: Çözüldü

http://suitable.amok-adhoc.com/2012/

- oldukça basitti. Sadece (o bunu yaparak geçersiz kılınır IE marjını eklendi ve "ofset" olarak adlandırılan diğer tüm tarayıcılarla üst öğe miras rağmen) açıkça böyle pozisyonunu bildirmek zorunda:

p { 
    left:0px; 
} 
+1

bu SO cevap bakınız: http://stackoverflow.com/questions/4817745/how-do-i-get-rid-of-an-elements-offset-using-css – Kibria

+0

Bulunamadı İstenen URL/2012/bu sunucuda bulunamadı. Ayrıca, isteği işlemek için bir ErrorDocument kullanmaya çalışırken bir 404 Bulunamadı hatasıyla karşılaşıldı. –

+0

Özür dilerim, bu benim geliştirme ortamımdı - bunu bir yıl sonra sürdürmüyorum;) Ama Kibria ipliği, kendimi bulduğum düzeltmeyle uyumlu, gerçekten iyi bir açıklama sağlamak için bağlantı kurar. – funkylaundry

cevap

26

ofseti, öğenin orijinal konumundan çıkarıldığı mesafedir. Bu, left, top, bottom ve/veya right değerleriyle konum konumunun göreli veya mutlak olduğu zaman görülür. Örnek olarak aşağıdaki kodu alın:

#header { 
    top: 3em; 
    left: 3em; 
    position: relative; 
} 

biz Internet Explorer 10'da bu öğeyi denetle, biz Eğer söz edildi ofset görüyoruz. em değerleri piksellere dönüştürüldü, ancak efekt hala görülebilir. Biz (ayrıca Opera) Chrome Geliştirici Araçları benzer bir şey görüyorum, sadece yerine "konumuna" olarak etiketlenmiş oluyor Not: Garip enter image description hereenter image description here

Firefox bile ofset iletişim görünmüyor/izah yoluyla pozisyon: sonunda

enter image description here

bu sadece semantik bir konudur. "Ofset" veya "pozisyon" dediğimiz de, hala aynı şeydir; Ekrandaki orijinal konumundan uzaklıktır.

Bu yardımcı olur umarım.

+4

CSS2.1, gayri resmi olarak şu anda ofsetleri de çağırır: http://www.w3.org/TR/CSS21/visuren.html#position-props – BoltClock

+1

Güzel Bul, @BoltClock. * Ofset * kullanımı ile şok değilim; Düzen ile ilgili DOM özellikleri arasında bile oldukça yaygın bir terimdir. Çoğunlukla, Firefox'un olduğu kadar harika olduğundan, bunlardan bahsetmedim. – Sampson

+0

i elemanların konumlarını ayarlamamıştır, ayrıca kendiliğinden ve ebeveynde kenar boşlukları da ayarlanmamıştır, ayrıca hesaplanmış sekmedeki tüm stilleri kaydırmıştım, ancak hala burada dengelenmiş ve eleman 10px 'a kaydırılmıştır (kromda kaydırılmamış ve sol : -10px vardiya elemanı da kromda) – devi

1

Bu garip gözüküyor, ancak girişler içinayarını CSS olarak ayarlamayı deneyebilirsiniz. En azından IE8'de düzeltir.

0

Benzer bir sorunla karşılaştım, başlık menü genişliğim doğru görünmüyordu (künt genişlikte görünüyordu), bazı hata ayıklamadan sonra benim için sorun yarattığım rem Poly-fill eklediğimi fark ettim. Ben de meta(http-equiv="x-ua-compatible" content="IE=Edge,chrome=1") kullanıyordum.

rem-polyfil JS dosyasını kaldırdıktan sonra, benim için düzgün çalışmaya başladı.

0

Bu trick bana yardımcı olmayı deneyebilirsiniz: position: -ms-device-fixed; .

İlgili konular