Quirks Modunda DOCTYPE Öğesini Kullanma

Tarayıcıları Quirks Moduna Getirmek için Doctype'ı Dışarıda Bırakın

Birkaç aydan uzun bir süredir web sayfaları tasarlıyorsanız, büyük olasılıkla tüm tarayıcılarda aynı görünen bir sayfa yazmanın zorluğunun farkındasınızdır. Aslında, bu imkansız. Birçok tarayıcı sadece ele alabilecekleri özel özellikler ile yazılmıştır. Ya da diğer tarayıcıların bunlarla nasıl başa çıktıklarından farklı şeyleri ele almak için özel yöntemleri vardır. Örneğin:

Tarayıcı geliştiricileri için sorun, eski tarayıcılar için oluşturulmuş web sayfalarıyla geriye dönük olarak uyumlu web tarayıcıları oluşturmaları gerektiğidir. Bu sorunla başa çıkmak için tarayıcı yapıcılar, tarayıcıların çalışması için modlar oluşturdu. Bu modlar, bir DOCTYPE öğesinin varlığına veya yokluğuna ve DOCTYPE'nin ne aradığına göre tanımlanır.

DOCTYPE Anahtarlama ve “Quirks Mode”

Web sayfanıza aşağıdaki DOCTYPE koyarsanız:

Modern tarayıcılar (Android 1+, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) bunu şu şekilde yorumlar:

  1. Doğru yazılmış bir DOCTYPE olduğundan, standart modunu tetikler.
  2. Bu bir HTML 4.01 Geçiş belgesi
  3. Standartlar modunda olduğu için çoğu tarayıcı içeriği HTML 4.01 Transitional ile uyumlu (veya çoğunlukla uyumlu) hale getirir

Ve eğer bu DOCTYPE'i belgenize koyarsanız:

Bu, modern tarayıcılara HTML 4.01 sayfanızı DTD ile tam uyum içinde görüntülemek istediğinizi bildirir.

Bu tarayıcılar "katı" veya "standartlar" moduna girecek ve sayfayı standartlara uygun hale getirecektir. (Bu nedenle, bu belge için, HTML 4.01 Strict'de FONT öğesi kullanımdan kaldırıldığı için, tarayıcı tarafından tamamen yok sayılan etiketler olabilir.)

DOCTYPE'i tamamen terk ederseniz, tarayıcılar otomatik olarak “quirks” moduna geçer.

Aşağıdaki tablo, ortak tarayıcıların farklı ortak DOCTYPE bildirimleriyle sunulduğunda neler yaptığını gösterir.

Microsoft Daha Zorlaştırıyor

Internet Explorer 6 ayrıca, DOCTYPE bildiriminin üzerine herhangi bir şey koyarsanız, quirks moduna gireceklerdir. Yani, bu örneklerin her ikisi de, DOCTYPE bildirimlerinin katı standartlar modunda olduğunu söylemesine rağmen IE 6'yı quirks moduna geçirecektir:

ve XHTML 1.1 DOCTYPE:

Ayrıca, IE6'yı geçerseniz, Microsoft'un IE8 ve IE9: META eleman değiştirme ve web sitesi kara listeye eklediği “özellik” e sahipsiniz. Aslında, bu iki tarayıcı sürümü artık yedi (!) Farklı moda sahiptir:

IE 8, kullanıcının render modelini IE 7 moduna geri döndürmeyi seçebileceği “Uyumluluk Modu” nu da tanıttı. Böylece, hem DOCTYPE hem de META öğelerini kullanarak ayarlamak istediğiniz modu ayarlamış olsanız bile, sayfanız yine de daha az standart uyumlu modda geri itilmiş olabilir.

Quirks Mode nedir?

Web tasarımcılarının bu şeylerle başa çıkmak için kullandıkları tüm garip oluşturma ve uyumlu olmayan tarayıcı desteği ve hack'lerle başa çıkmak için Quirks modu oluşturuldu. Tarayıcı üreticilerinin sahip olduğu endişeler, tarayıcılarını tam şartname uyumluluğuna geçirdiyse, web tasarımcıları geride kalacaktı.

DOCTYPE anahtarlamayı ve “Quirks Mode” ayarını yaparak, web tasarımcılarının tarayıcılarını HTML'lerini oluşturmalarını istediklerini seçmelerine izin verildi.

Quirks Mode Etkileri

Çoğu tarayıcının Quirks Mode'da kullandığı çeşitli efektler vardır:

“Neredeyse Standartlar Modu” nda da bir fark var.

DOCTYPE nasıl seçilir

DOCTYPE Listesindeki makalemde daha fazla ayrıntıya giriyorum, ancak burada bazı genel kurallar var:

  1. Her zaman ilk önce standart modunu seçin. Ve şu an kullanmanız gereken standart HTML5:
    HTML5 DOCTYPE kullanmaktan kaçınmak için belirli bir nedeniniz olmadığı sürece, bunu kullanmanız gerekir.
  2. Eski öğeleri doğrulamanız gerekiyorsa veya bazı nedenlerden kaçınmak istiyorsanız katı HTML 4.01'e gidin:
  3. Bir tabloda dilimlenmiş resimler varsa ve bunları düzeltmek istemiyorsanız, Transitional HTML 4.01'e gidin:
  4. Quirks modunda kasten sayfa yazmayın. Daima bir DOCTYPE kullanın. Bu, sizi gelecekte geliştirme zamanından kurtaracak ve gerçekten hiçbir faydası olmayacaktır. IE6 hızla popülaritesini kaybediyor ve bu tarayıcı için tasarlayarak (ki bu da aslında quirks modunun tasarımını yapıyor) kendinizi, okurlarınızı ve sayfalarınızı sınırlıyorsunuz. IE 6 veya 7 için yazmanız gerekiyorsa, modern tarayıcıları quirks moduna zorlamak yerine, bunları desteklemek için koşullu yorumlar kullanın.

Neden DOCTYPE Kullanmalı?

Bu tür bir DOCTYPE anahtarının devam ettiğini fark ettikten sonra, tarayıcınızın sayfanızdan bekleyebileceklerini belirten bir DOCTYPE kullanarak web sayfalarınızı daha doğrudan etkileyebilirsiniz. Ayrıca, DOCTYPE kullanmaya başladığınızda, geçerli olmaya daha yakın HTML yazacaksınız (yine de doğrulamanız gerekir). Ve geçerli bir XHTML yazarak, tarayıcı üreticilerini standartlara uygun tarayıcılar oluşturmaya teşvik edersiniz.

Tarayıcı Sürümleri ve Quirks Modu

DOCTYPE Android
Krom
Firefox
IE 8+
iOS
Opera 7.5+
Safari
IE 6
IE 7
Opera 7
Netscape 6
Yok Alay modu Alay modu Alay modu
HTML 3.2
Alay modu Alay modu Alay modu
HTML 4.01
Geçici Standartlar Modu * Standartlar Modu * Standartlar modu
Geçici Alay modu Alay modu Alay modu
sıkı Standartlar modu Standartlar Modu * Standartlar modu
sıkı Standartlar modu Standartlar Modu * Standartlar modu
HTML5
Standartlar modu Standartlar Modu * Alay modu
* Bu DOCTYPE ile, tarayıcılar standartlara uyumludur, ancak bazı sorunları vardır; test ettiğinizden emin olun. Bu aynı zamanda “Neredeyse Standartlar Modu” olarak da bilinir.