ترك خارج Doctype لوضع المتصفحات في وضع Quirks
إذا كنت تصمم صفحات الويب لأكثر من بضعة أشهر ، فأنت على الأرجح على دراية بصعوبة كتابة صفحة تبدو متشابهة في جميع المتصفحات . في الواقع ، هذا مستحيل. تمت كتابة العديد من المتصفحات بميزات خاصة يمكن فقط التعامل معها. أو لديهم طرق خاصة للتعامل مع الأشياء التي تختلف عن كيفية معالجة المتصفحات الأخرى لهم. فمثلا:
- تم إنشاء الطبقات للاستخدام في متصفحات Netscape. وهي لا تعمل في أي متصفح آخر ، وفي الواقع تم إهمالها في Netscape 6.x +.
- تم إنشاء الإطارات المضمنة في الأصل لمتصفح Internet Explorer فقط ، ومنذ ذلك الحين أصبحت جزءًا من مواصفات HTML.
- يضيف Internet Explorer 6.0 مساحة إضافية (مثل
) العلامات المحيطة ، إلا إذا قمت بكتابة محتويات div على سطر واحد (طويل). (لدى IE 6 العديد من المراوغات بالإضافة إلى هذا.) - لن تعرض Netscpe 4.7 الجداول التي لم تتم كتابتها في HTML الصحيح - إنها تعرض صفحة فارغة بدلاً من ذلك. تم إصلاح هذا في Netscape 6.
تكمن المشكلة بالنسبة لمطوري البرامج في أن عليهم إنشاء متصفحات ويب متوافقة مع صفحات الويب المصممة للمتصفحات القديمة. من أجل التعامل مع هذه المشكلة ، قام صانعو المتصفح بإنشاء أوضاع للمتصفحات للعمل فيها. يتم تعريف هذه الأوضاع من خلال وجود أو عدم وجود عنصر DOCTYPE وما يستدعيه DOCTYPE.
DOCTYPE التبديل و "وضع المراوغات"
إذا وضعت DOCTYPE التالي في صفحتك على الويب:
المتصفحات الحديثة (Android 1+ و Chrome 1+ و IE 6+ و iOS 1+ و Firefox 1+ و Netscape 6+ و Opera 6+ و Safari 1+) تفسر ذلك على النحو التالي:
- لأن هناك DOCTYPE مكتوبة بشكل صحيح ، وهذا يؤدي إلى تشغيل وضع المعايير.
- انها HTML 4.01 الوثيقة الانتقالية
- نظرًا لأنه في وضع المقاييس ، ستجعل معظم المتصفحات المحتوى المتوافق (أو المتوافق في الغالب) مع HTML 4.01 Transitional
وإذا وضعت هذا DOCTYPE في مستندك:
يخبر هذا المتصفحات الحديثة أنك تريد عرض صفحة HTML 4.01 الخاصة بك في توافق تام مع DTD.
ستدخل هذه المتصفحات في وضع "صارم" أو "مقاييس" وتجعل الصفحة متوافقة مع المعايير. (لذلك ، بالنسبة لهذا المستند ، قد يتم تجاهل العلامات تمامًا مثل المتصفّح ، حيث تم إيقاف عنصر FONT في HTML 4.01 Strict.)
إذا تركت DOCTYPE خارجًا تمامًا ، فسيتم تشغيل المتصفحات تلقائيًا في وضع "المراوغات".
يوضح الجدول أدناه ما تفعله المتصفحات الشائعة عند تقديمها مع إعلانات DOCTYPE الشائعة المختلفة.
مايكروسوفت يجعل من الصعب
يحتوي Internet Explorer 6 أيضًا على ميزة أنه إذا وضعت أي شيء على الإطلاق فوق تعريف DOCTYPE ، فسيتم الانتقال إلى وضع المراوغة. لذلك ، كل من هذه الأمثلة سيضع IE 6 في وضع quirks ، على الرغم من أن تصريحات DOCTYPE تقول في وضع المعايير الصارمة:
و XHTML 1.1 DOCTYPE:
بالإضافة إلى ذلك ، إذا تخطيت IE6 ، فستكون لديك "الميزة" التي أضافتها Microsoft في IE8 و IE9: تحويل عنصر META والقائمة السوداء للموقع الإلكتروني. في الحقيقة ، هذان الإصداران من المستعرضات يحتويان الآن على سبعة أوضاع (!) مختلفة:
- وضع IE 5.5 مراوغات (IE 8 و 9)
- وضع معايير IE 7 (IE 8 و 9)
- IE 8 وضع المعايير تقريبًا (IE 8 و 9)
- وضع معايير IE 8 (IE 8 و 9)
- IE 9 وضع المعايير تقريبا (IE 9)
- وضع معايير IE 9 (IE 9)
- وضع XML (IE 9)
قدم IE 8 أيضًا "وضع التوافق" حيث يمكن للمستخدم اختيار تغيير نموذج العرض إلى وضع IE 7. لذلك حتى إذا قمت بتعيين الوضع الذي تريد تعيينه باستخدام كل من DOCTYPE و META ، فستستمر إعادة الصفحة إلى وضع أقل توافقًا مع المعايير.
ما هو وضع Quirks؟
تم إنشاء وضع Quirks للمساعدة في التعامل مع كل دعم المستعرض الغريب وغير المتوافق مع الاختراقات التي يستخدمها مصممو الويب للتعامل مع هذه الأشياء. كان المخاوف من الشركات المصنعة للمتصفح هو أنه إذا حولت متصفحاتهم إلى التوافق الكامل للمواصفات ، فسيتم ترك مصممي الويب متخلفين.
من خلال إعداد تبديل DOCTYPE و "وضع Quirks" ، يسمح مصممو الويب المسموح لهم باختيار الطريقة التي يريدون من المتصفحات تقديم HTML الخاص بهم.
تأثيرات وضع المراوغة
هناك العديد من التأثيرات التي تستخدمها معظم المتصفحات في وضع Quirks:
- في بعض المتصفحات ، يتغير نموذج الصندوق إلى إصدار IE 5.5 لنموذج الصندوق في وضع المراوغات.
- بعض المتصفحات لا ترث الأنماط في الجداول
- يؤثر وضع Quirks في تحليل تصميم CSS و CSS بشكلٍ كبير ، إذا كنت تقوم بتحويل الصفحات إلى وضع المعايير من وضع المراوغات ، فتأكد من اختبار تخطيط CSS والتحليل على نطاق واسع.
- مشاهدة التغييرات على البرمجة النصية في وضع المرتدة. يغيّر فايرفوكس الطريقة التي تعمل بها سمة المعرّف ، على سبيل المثال. IE8 و IE9 لديها تغييرات كبيرة جدا في البرمجة النصية في وضع المرايل.
هناك أيضًا اختلاف في "وضع المعايير تقريبًا:"
- يتم حساب ارتفاع خلايا الجدول مع الصور فقط داخل بشكل مختلف عن وضع المعايير.
كيف تختار دوكتيبي
أذهب إلى مزيد من التفاصيل في مقالتي DOCTYPE List ، ولكن إليك بعض القواعد العامة للإبهام:
- دائما اختيار وضع المعايير أولا. والمعيار الحالي الذي يجب أن تستخدمه هو HTML5: ما لم يكن لديك سبب محدد لتجنب استخدام HTML5 DOCTYPE ، فهذا هو ما يجب أن تستخدمه.
- انتقل إلى HTML 4.01 صارم إذا كنت بحاجة إلى التحقق من العناصر القديمة أو تريد تجنب الميزات الجديدة لسبب ما:
- إذا قمت بتقطيع الصور في جدول ولا تريد إصلاحها ، فانتقل إلى Transitional HTML 4.01:
- لا تكتب الصفحات عمدا في وضع المراوغة. استخدم دومًا DOCTYPE. سيوفر لك ذلك في وقت التطوير في المستقبل ، وليس له أي فائدة. يفقد المتصفح IE6 شعبية بشكل سريع ، ومن خلال تصميمه على هذا المتصفح (الذي هو أساسًا التصميم في وضع المراوغة) فإنك تقيد نفسك وقرائك وصفحاتك. إذا كنت يجب أن تكتب لـ IE 6 أو 7 ، فاستخدم التعليقات الشرطية لدعمها ، بدلاً من إجبار المتصفحات الحديثة على الوصول إلى وضع المراوغة.
لماذا استخدام DOCTYPE
بمجرد معرفة هذا النوع من تبديل DOCTYPE ، يمكنك التأثير بشكل مباشر على صفحات الويب الخاصة بك باستخدام DOCTYPE الذي يشير إلى ما يمكن أن يتوقعه المستعرض من صفحتك. أيضًا ، بمجرد البدء في استخدام DOCTYPE ، ستكتب HTML الذي يكون أقرب إلى أن يكون صالحًا (يجب عليك التحقق من صحته). وعن طريق كتابة XHTML صالح ، فإنك تشجع صانعي المتصفح على بناء متصفحات متوافقة مع المعايير.
إصدارات المتصفح ووضع Quirks
DOCTYPE | ذكري المظهر كروم ثعلب النار IE 8+ دائرة الرقابة الداخلية Opera 7.5+ رحلات السفاري | IE 6 IE 7 أوبرا 7 | نتسكيب 6 |
---|---|---|---|
لا شيء | وضع المراوغات | وضع المراوغات | وضع المراوغات |
HTML 3.2 | |||
وضع المراوغات | وضع المراوغات | وضع المراوغات | |
HTML 4.01 | |||
انتقالي | وضع المعايير * | وضع المعايير * | وضع المعايير |
انتقالي | وضع المراوغات | وضع المراوغات | وضع المراوغات |
صارم | وضع المعايير | وضع المعايير * | وضع المعايير |
صارم | وضع المعايير | وضع المعايير * | وضع المعايير |
HTML5 | |||
وضع المعايير | وضع المعايير * | وضع المراوغات | |
* مع هذا DOCTYPE ، تكون المتصفحات قريبة من المعايير المتوافقة ، ولكن لديها بعض المشاكل - تأكد من اختبارها. يُعرف أيضًا باسم "وضع المعايير تقريبًا". |