Soru IE8 inline bloğu çalışmıyor


Aşağıdaki kodu aldığımı söyle

<style type="text/css" media="all">
  span, ul, ul li {
    display: inline-block;
    vertical-align: top;
    margin: 0;
    padding: 0;
    list-style: none;
  }   
</style>
<span>i would want</span>
<ul>
  <li>this</li>
  <li>on</li>
  <li>one line.</li>
</ul>

Bunu IE8'de satır içi görüntülemek istiyorum. Herşeyi okuduğum herşeyin işe yarayacağını söyleyen IE8, inline bloğu destekliyor. Ancak bir sabah çalıştıktan sonra yukarıyı sıraya alamıyorum. Yüzebildiğimi biliyorum, ama sayfamdaki diğer öğelerle (burada gösterilmiyor) daha belirgin bir 'clearfix' kullanmam gerekecek. Sadece IE8'i hedeflemeli ve görünüşe göre desteklendiğinde satır içi bloğun neden benim için çalışmadığını bilmek isterim. Yukarıdaki kod, Google Chrome’da görüntülendiğimde istediğimi yapar.


49
2018-02-02 10:23


Menşei


En iyi cevap burada: stackoverflow.com/questions/6703017/ie-display-inline-block - Marcus


Cevaplar:


Sanırım bir doktrin ilan etmediniz. Bunu html etiketinden önce ilk satıra yerleştirmeyi deneyin:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Yapıştırdığınız kod, IE8'de bu doctype ile çalışır.


50
2018-02-02 10:29



Seni seviyorum, bu beni bir çok IE-ache kurtardı! - Iazel
Woah! Lanet olsun, her zaman bunu unuttum - Chris
@Iazel IE'nin vurulduğunu kastettin - Cristian E.
Teşekkür ederim, internete bir cevap vermek için gitmek zorunda kalmam gerektiğinden endişeliydin. - Javacadabra


Tüm IE8 sürümleri eşit olarak çalışmamaktadır. Verilen kodun, bir DOCTYPE ile bile, erken bir sürüm olan IE 8.0.6001.18702'de çalışmadığını buldum.

Bununla birlikte, daha düşük IE sürümleri için geçici çözüm, söz konusu IE 8'deki işini de yaptı:

<!--[if lt IE 8]>
<style type="text/css">
    li { display: inline; }
</style>   
<![endif]-->

37
2018-02-20 22:48



Bu mükemmel çalıştı, sadece geçersiz kılmak için önemli eklendi, inline aslında IE'de satır içi blok gibi görünüyor. Teşekkür ederim! - formatc
Rastgele bu konuda tökezledi, benim için çalıştı, satır içi gerçekten satır içi. Teşekkürler - Samuel
Cool, bu benim için çalıştı, aynı sorun var, Windows 7 IE 8 ve satır içi-blok çalışmıyor - JorgeeFG
Aynen benim için de aynısı! Tam olarak IE'nin aynı sürümüne sahibim ve DOCTYPE'nin kendisi çalışmıyor. - TMS
Bu yalnızca IE8, IE7 öykünmesi olan Uyumluluk Görünümü'nde olduğunda gerçekleşir. Farklı IE8 sürümleri sorunu değil, hatalı oluşturma modları sorunu. IE7'den beri bir DOCTYPE kullanılsa ve daha önce bir DOCTYPE kullanıldıysa bile her zaman bu problemi yaşadığı halde bunun gerçekleşmesi şaşırtıcı değildir. Ayrıca, 8.0.6001.18702 RTM'dir, erken bir sürüm değildir ve bu bile alakalı değildir çünkü display: inline-blockdestek ilk betadan başlayarak zaten tamamlanmıştı. Bunun doğru çözümü <meta http-equiv="X-UA-Compatible" content="IE=edge"> - BoltClock♦


Kenar boşluğunu ayarlayabilirsiniz: 1px

benim için gayet iyi çalıştı.


17
2018-02-24 11:58



Bu, bütün cevaplardan en iyi seçenek. Büyük bahşiş! - Abe Petrillo
Ne ... Bunun işe yarayacağına inanamıyorum! - Connell
Bağlantı bozuk. - Yisela
Kırık link kaldırıldıcompsoft.co.uk/Blog/2009/11/...) Web sitelerini değiştiriyorlar ve artık yazıyı bulamıyorlar. - mentat
Kurtarma için web arşivi - Kos


Benim deneyimlerimde, bir satır içi bloğu ilan etmenin evrensel yolunu (IE6 +) kullanmak her zaman daha iyi bir fikirdir. Daha yeni tarayıcıları hedeflemiş olsanız bile, yalnızca yeni tarayıcılar tarafından desteklendiğini söylemeye çalışmış olsam bile, bazı müşteriler hala doküman türüyle uğraşırlar ve satışlar düzelir, çünkü istemciler bunu görebilir ve onu almaz, IE ayarlarına düşer ve bizim hatamız değil. Yapısal nesneler için satır içi blokları kullandığınızda, kullanıcı siteyi eski bir IE'de hiç bir sebepten dolayı görüntülüyorsa tamamen dağılmayı engeller.

display: inline-block;
*zoom: 1;
*display: inline;

13
2017-11-14 16:23



Bu deyimsel! Aynen if (var i < 0; i y x.length; i++) - HerrSerker
@HerrSerker Bununla ne demek istediğini bilmiyorum, ancak IE6 + tarzında (bu gibi ya da değil) satır içi bloğu nasıl elde edersiniz. - Idra
Evet, tam olarak ne demek istedim. JS döngü yapısını öğrendikçe öğrenmelisin. - HerrSerker
“Deyimsel”, ama sen yazdın if yerine for… @HerrSerker - Ry-♦
kullanırım display: inline; display: inline-block; *zoom: 1; - IE ikinci ekran kuralını yok sayar ve zoom sadece eski IE için geçerli olur - Tom McKenzie


Eğer float kullanmadığınız sürece IE8 bunu blok seviye elemanı olarak ele alacaktır.

.divInlineBlock
{
   display: inline-block;
   float: left;
}   

9
2017-11-29 22:53





Bir intranet sitesini görüntülüyorsanız, IE8'in IE7 gibi davranacağını unutmayın; Bu StackOverflow sorusuna bakın:

IE8 Varsayılan Olarak IE7 Olarak İşleniyor mu?


5
2018-02-15 00:06





IE8 için - belirli bir beyanname ekleyebilirsiniz:

display: inline-table;

hangi harika çalışıyor.


3
2017-08-28 18:04