2016-04-13 16 views
1

IE8'de Bootstrap çalışması yapmak istiyorsam, Respond.js'u kullanmam gerektiğini öğrendim. Bir kez dahil, bir şey hariç, her şey iyi görünüyor. HTML5 öğeleri stili ayarlamayacak gibi görünüyor (hatta yerel html dosyasında IE11 geliştirici aracını kullanarak IEX'de (IE8'de öykünme aracı) geliştirirken satır içi kodla düzenleme yaparken, ancak Bootstrap example'da aynı işi yaptığımda işe yaramış gibi görünüyor. mükemmel bir şekilde olsa da). (Tarayıcı içinde düzenlerken) örneği sayfa içindeIE8'deki Önyükleme Bir stil nasıl çalışır?

<footer>...</footer> 

için
<footer style="BACKGROUND-COLOR: tomato">...</footer> 

eser, ama benim yerel dosyayı açtığınızda çalışmak ve yapmaz:

HTML değiştirme aynı şey.

Neden HTML0 öğelerinde the example sayfasında ancak yerel dosyamda olmayan bir altbilgiye stil ekleyebilirim? Bazı dosya eksik mi yoksa farklı bir şey mi yapmam gerekiyor? <footer> şekillendirme çalışmamı nasıl yapabilirim? Ben yapacağını

Bir öneri bir sınıf .footer ile sadece <div> eleman bunu yapıyor ama bu Bootstrap örnek dahilinde benziyor yol değildir, bu nedenle bu sorunun I düzeltmek için doğru yol olup olmadığını bilmiyorum yaşıyorum.

+0

IE8 çoğu HTML5 işlevini desteklemez. Bkz. Https://html5test.com/compare/browser/ie-8.html IE8'de nelerin desteklendiği. – Jer

+0

@ C0dekid.php Bunun farkındayım, ancak Bootstrap örneğine baktığımda, değişen satır içi kodu işe yarıyor gibi görünüyor, neden bu? – Barrosy

+0

Bazı HTML5 öğelerinin eski tarayıcılarda çalışmasını sağlamak için javascripts var. Belki de onları kaçırıyorsunuz – Jer

cevap

2

HTML5, sayfalarınıza semantik anlam eklemek için bir sürü yeni öğeye sahiptir. Örneğin, nav bir gezinme menüsünü belirtir.

IE8 bunlarla ilgili hiçbir şey bilmiyor olduğundan, CSS aracılığıyla bunlara uygulanan stilleri tanımayacaktır.

<!--[if lt IE 9]> 
    <script> 
     document.createElement('header'); 
     document.createElement('nav'); 
     document.createElement('section'); 
     document.createElement('article'); 
     document.createElement('aside'); 
     document.createElement('footer'); 
    </script> 
<![endif]--> 

Açıkçası varlığı her HTML5 öğesini, gerçekten kullandığınız sadece olanları tanımlamak gerekmez: Neyse ki, basitçe sayfanın DOM eksik unsurları ekleyerek bunu düzeltmek için kolay bir yolu yoktur. Bu arada, bu kod, Microsoft tarafından, tarayıcı sürümlerindeki farklılıkların özellikle desteklenmesi için getirilen bir özellik olan conditional comment s kullanıyor.

Dikkat edilmesi gereken diğer önemli bir nokta, HTML5 öğelerinin varsayılan olarak block olarak görüntülendikleridir, ancak IE8 bunu da bilmiyor. belirli öğeleri stil zaman ya display: block; belirleyebildiğinde Bu sorunu hafifletmek veya CSS'nizde toptan yapmak için: (this one benzeri) bir HTML5 farkında sıfırlama stil kullanıyorsanız, bu muhtemelen önceden alınmış olduğunu

header, nav, section, article, aside, footer { 
    display:block; 
} 

Not

senin için bakım. js kullanmak


Diğer bir yol

html5shiv ve Modernizr polyfill komut şeklinde alternatif çözüm vardır liberaries. Eski IE sürümlerine HTML5 etiketleri desteği eklemek için bu kitaplıklardan birini kullanın.

+0

Bu aradığım şey gibi görünüyor, yine de merak ediyorum, Bootstrap örnek sayfalar için CSS çalışmasını bu şekilde mi yapıyor? Bu konuda daha fazla bilgiyi okuyabilir miyim (benim için bir kaynağınız var mı?) – Barrosy

+0

Bu şekilde veya güncellenen cevabımda bahsettiğim js kütüphaneleri kullanarak, tarayıcı desteği söz konusu olduğunda, bir etiket oluşturmanın ya da sadece tüm etiketleri desteklemek için kütüphaneleri kullanmanın bir çözümü bulmak zorunda olmanız gerektiğine inanıyorum. u –

+0

için bir kaynak bulursam bağlantı Sadece 'html5shiv' eklemek benim için problemi çözdü. http://getbootstrap.com/getting-started/#template Bunu gösterir. – Barrosy

İlgili konular