Brauzerləri Quirks rejiminə qoymaq üçün Doctype'i buraxın
Bir neçə aydan artıq veb səhifələr hazırlamış olsanız , bütün brauzerlərdə eyni görünən bir səhifəni yazmağın çətinliyindən xəbərdar olursunuz. Əslində, bu mümkün deyil. Bir çox brauzer yalnız onlar idarə edə biləcək xüsusiyyətləri ilə yazılmışdır. Və ya başqa brauzerlərin onları necə idarə etdiyindən fərqli olan şeyləri idarə etmək üçün xüsusi üsulları var. Misal üçün:
- Layerlər Netscape brauzerlərində istifadə üçün yaradılmışdır. Onlar başqa bir brauzerdə işləmir və əslində Netscape 6.x + də istifadə edilmir.
- Satırdakı çərçivələr əvvəlcə yalnız Internet Explorer üçün yaradılıb və bundan sonra HTML spesifikasiyasının bir hissəsi olmuşdur.
- Internet Explorer 6.0 əlavə bir yer (bir
) ətrafdakı yazıları, divun məzmununu bir (uzun) xəttə yazmırsınız. (IE 6-nın bu qədər olduğu kimi bir çox tirajı var.) - Netscpe 4.7 düzgün HTML-də yazılmayan masaları göstərməyəcək - bunun yerine boş bir səhifə göstərilir. Bu Netscape 6-da müəyyən edilmişdir.
Brauzer inkişaf etdiricilərinin problemi, köhnə brauzerlər üçün tikilmiş veb-səhifələrlə geriyə uyğun olan veb brauzerləri yaratmaqdır. Bu məsələ ilə məşğul olmaq üçün brauzer hazırlayanlar brauzerlərin fəaliyyət göstərmələri üçün rejimi yaratdılar. Bu rejimlər DOCTYPE elementinin olması və ya olmaması və DOCTYPE çağırışları ilə müəyyən edilir.
DOCTYPE Switching və "Quirks Mode"
Aşağıdakı DOCTYPE səhifənizi veb səhifənizə qoyursanız:
Müasir brauzerlər (Android 1 +, Chrome 1+, IE 6+, iOS 1+, Firefox 1+, Netscape 6+, Opera 6+, Safari 1+) bu şəkildə aşağıdakı şəkildə şərh edir:
- Düzgün yazılmış DOCTYPE olduğu üçün bu, standartların rejimi tetikler.
- HTML 4.01 keçid sənədidir
- Standartların rejimində olduğu üçün, brauzerlərin əksəriyyəti HTML 4.01 keçidli məzmuna uyğun (ya da əsasən uyğunluq göstərəcək)
Sənəddə bu DOCTYPE yazarsan:
Bu, HTML 4.01 səhifənizi DTD ilə ciddi şəkildə uyğunlaşdırmaq istədiyiniz müasir brauzerlərə deyir.
Bu brauzerlər "ciddi" və ya "standartlar" rejiminə daxil olur və səhifəni standartlara uyğunlaşdırır. (Beləliklə, bu sənəd üçün FONT elementi HTML 4.01-də qətiyyən qadağan olunduğundan, bu kimi etiketləri brauzer tərəfindən tamamilə məhəl qoyula bilər.)
DOCTYPE'yi tamamilə tərk etsəniz, brauzerlər avtomatik olaraq "quirks" rejiminə atılır.
Aşağıdakı cədvəldə ümumi yayılmış brauzerlərin fərqli ümumi DOCTYPE bəyanatları ilə təqdim edildikdə nə göstərir.
Microsoft daha çətin olur
Internet Explorer 6 da, DOCTYPE bəyannaməsinin yuxarısında bir şey qoyarsanız, onlar quirks rejiminə girəcək xüsusiyyətə sahibdir. Beləliklə, bu nümunələr hər ikisi də IE 6-ı quirks rejiminə qoyacaqdır, baxmayaraq ki, DOCTYPE bəyanatları ciddi standartlar rejimində olmalıdır:
və XHTML 1.1 DOCTYPE:
Plus, keçmişdə IE6 varsa, Microsoft'un IE8 və IE9-da əlavə etdiyi "xüsusiyyət" var: META elemanı kommutasiya və veb-sayt siyahılaşması. Əslində, bu iki brauzer versiyası artıq yeddi (!) Müxtəlif rejimi var:
- IE 5.5 quirks rejimi (IE 8 və 9)
- IE 7 standartları rejimi (IE 8 və 9)
- IE 8 demək olar ki, standartlar rejimi (IE 8 və 9)
- IE 8 standartları rejimi (IE 8 və 9)
- IE 9 demək olar ki, standartlar rejimi (IE 9)
- IE 9 standartları rejimi (IE 9)
- XML rejimi (IE 9)
IE 8, həmçinin istifadəçinin Rendinq modelini IE 7 rejiminə dəyişməyi seçə biləcəyi "Uyğunluq rejimi" ni təqdim etdi. Belə ki, həm DOCTYPE, həm də META elementləri ilə təyin etmək istədiyiniz rejimi qursanız belə, səhifəniz hələ də daha az standartlara uyğun rejimə buraxıla bilər.
Quirks rejimi nədir?
Quirks rejimi, bütün qəribə göstərmə və uyğun olmayan brauzer dəstəyi ilə məşğul olmaq üçün yaradılmış və veb-dizaynerlər bu işlərlə məşğul olmaq üçün istifadə etdilər. Brauzer istehsalçılarının narahatlığı, brauzerləri tam dəqiqləşdirməyə uyğunlaşdırdıqları təqdirdə, veb-dizaynerlər geridə qalacaqdı.
DOCTYPE keçidini və "Quirks Mode" quraraq, bu, veb-dizaynerlərə HTML-lərini göstərmək üçün brauzerlərin istədiklərini seçməsinə icazə verdi.
Quirks rejimi təsiri
Ən çox brauzerlərin Quirks rejimində istifadə etdiyi bir neçə təsir var:
- Bəzi brauzerlərdə, qutu modeli quirks rejimində qutu modelinin IE 5.5 versiyasına dəyişir.
- Bəzi brauzerlər üslubları masalara devralmırlar
- Quirks rejimi CSS-lərin və CSS-lərin ayrılmasını dramatik şəkildə təsir edir, əgər səhifələri sitatlar rejimindən standartlar rejiminə çevirirsinizsə, CSS-nin yerləşdirilməsini test etdirməyinizə və geniş təhlil olunmasına əmin olun.
- Quirks rejimində scripting dəyişiklikləri üçün baxın. Firefox, id xüsusiyyətinin necə işlədiyini dəyişir. IE8 və IE9, quirks rejimində scripting üçün çox dramatik dəyişikliklərə malikdir.
"Almost Standartlar rejimi" də bir fərq var:
- Yalnız şəkillərlə masa hüceyrələrinin hündürlüyü standart rejimdən fərqli olaraq hesablanır.
Bir DOCTYPE seçmək üçün necə
DOCTYPE siyahısı mənim məqaləmdə daha detallı şəkildə danışıram, amma burada ümumi başlıqların ümumi qaydaları var:
- Həmişə ilk növbədə standartları seçin. Və istifadə etdiyiniz standart HTML5: HTML5 DOCTYPE'yi istifadə etməmək üçün xüsusi bir səbəb olmasa, bu istifadə etməniz üçündür.
- Məqsədli elementləri təsdiqləməlisinizsə və ya bir nədənsə yeni funksiyalardan qaçmaq istəyirsinizsə ciddi HTML 4.01-ə gedin:
- Bir cədvəldə şəkilləri dilimlənmiş və onları düzəltmək istəməsəniz, keçid HTML 4.01:
- Təravət rejimində səhifələr qəsdən yazmayın. Həmişə DOCTYPE istifadə edin. Bu gələcəkdə inkişaf dövründə sizi xilas edəcək və həqiqətən heç bir faydası yoxdur. IE6 sürətlə populyarlıq itirir və bu brauzer üçün nəzərdə tutulub (əsasən quirks rejimində nə tərtib olunur) özünüzü, oxucularınızı və səhifələrinizi məhdudlaşdırırsınız. IE 6 və ya 7 üçün yazmalısınızsa, onları dəstəkləmək üçün şərti şərhlərdən istifadə edərək, müasir brauzerləri quirks rejiminə çevirməyin.
Niyə DOCTYPE istifadə edin
DOCTYPE növündən keçməyin bu növü barədə xəbərdar olduqdan sonra brauzerinizin səhifənizdən nə gözlədiyini göstərən bir DOCTYPE istifadə edərək veb səhifələrinizi daha birbaşa təsir edə bilərsiniz. Ayrıca, DOCTYPE'yi kullanmaya başladıktan sonra, doğru olmanız üçün daha yaxın HTML yazmanız lazımdır (hala doğrulamanız lazımdır). Və etibarlı XHTML yazaraq, brauzerinizin standartlara uyğun brauzerlər qurmasına təşviq edirsiniz.
Brauzer sürümləri və Quirks rejimi
DOCTYPE | Android Chrome Firefox IE 8+ iOS Opera 7.5+ Safari | IE 6 IE 7 Opera 7 | Netscape 6 |
---|---|---|---|
Yoxdur | Quirks rejimi | Quirks rejimi | Quirks rejimi |
HTML 3.2 | |||
Quirks rejimi | Quirks rejimi | Quirks rejimi | |
HTML 4.01 | |||
Keçid | Standartlar rejimi * | Standartlar rejimi * | Standartlar rejimi |
Keçid | Quirks rejimi | Quirks rejimi | Quirks rejimi |
Möhkəm | Standartlar rejimi | Standartlar rejimi * | Standartlar rejimi |
Möhkəm | Standartlar rejimi | Standartlar rejimi * | Standartlar rejimi |
HTML5 | |||
Standartlar rejimi | Standartlar rejimi * | Quirks rejimi | |
* Bu DOCTYPE ilə brauzerlər standartlara uyğun, lakin bəzi məsələləri var - test etmək üçün əmin olun. Bu da "Dərhal Standartlar rejimi" kimi tanınır. |