سؤال

أود تقديم تعليق (<!-- this --> الاسلوب) في الجزء العلوي جدا من رمز HTML الخاص بي، مسبق إعلان DocType. هل هذا يتفق مع المعايير؟ هل هو مدعوم من المتصفحات الرئيسية؟ هل هناك أي مطبات في القيام بذلك؟

هل كانت مفيدة؟

المحلول

كتابة <!DOCTYPE> الأول هو بالتأكيد أفضل الممارسات.

أتذكر مشاكل غريبة منذ فترة طويلة، منذ وقت طويل حيث تجاهل بعض المتصفح (IE6) <!DOCTYPE> لأنه كان هناك شيء بريء على ما يبدو قبل ذلك - أعتقد فقط على مساحة المسافة، لكن ربما كان تعليقا. في أي حال، كان هناك خطأ فظيع ورهيبة لتعقبه، وبالتأكيد لن يكون هناك أي سبب وجيه للحصول على تعليقات أو مسافة بيضاء قبل <!DOCTYPE>.

كتابة <!DOCTYPE> أولا، أود أن أقول، فقط شيء من ذوي الخبرة، يقوم مطورو الويب بتجنب الحشرات الرهيبة المراوغة.

نصائح أخرى

أنه صالح بالكامل لكى يفعل

<!-- this, -->
<!DOCTYPE html>

ومع ذلك، انها تجلب الكل إصدارات IE في وضع المراوغات (ما لم يكن كذلك قسري في وضع عدم وجود Quirks - انظر gotchas. القسم أدناه). أبسط هي نقل التعليق أدناه DocType.

<!DOCTYPE html>
<!-- this, -->

لكن هناك طريقة أخرى "تطوير" التعليق في متكافئ الشرط تعليق، مثل هذا:

<!--[if !IE]> this <![endif]-->
<!DOCTYPE html>

تفسير: أ الشرط التعليق لا عدد كتعليق، في عالم IE.

بناء جملة بديل: أن ننسى / تذكر أن التعليقات الشرطية هي اقتحام Microsoft في معيار HTML، يمكن للمرء القيام به على سبيل المثال

<!--[if anybrowser]> this <![endif]-->
<!DOCTYPE html>

وبالمثل، لاستهداف IE على وجه الخصوص، يمكن للمرء القيام به

<!--[if !anybrowser]> this <![endif]-->
<!DOCTYPE html>

gotchas.

تعليق في داخل سيحضر تعليق شرطي أي في وضع Quirks إذا أي يرى ذلك (إنه: إذا يستخدم واحد an. إذا أي حالة، أو ما يعادل [إذا أي] - مثل إذا! AnyBrowser الشرط الذي ذكرته أعلاه.). لذلك، على سبيل المثال، هذا سيحضر IE في وضع Quirks:

<![if IE]><!-- this --><![endif]>
<!DOCTYPE html>

شأنها في ذلك شأن

<!--[if IE]><!--><!-- this <![endif]-->
<!DOCTYPE html>

والعديد من المتغيرات الأخرى. بينما على سبيل المثال

<!--[if IE]><!DOCTYPE html><!--><!-- this <![endif]-->
<!DOCTYPE html>

سيكون ليس تسبب وضع Quirks، لأن هنا التعليق الشرطي لديه doctype قبل اي شيء اخر المحتوى، وبالتالي، تعتبر أن المحتوى الأول من الصفحة هو doctype.

أخيرا، أحدث إصدارات IE، IE8 و IE9., ، يمكن ان يكون قسري إلى وضع المعايير (وإلى وضع Quirks أيضا) من خلال استخدام Microsoft Intercention آخر - X-UA متوافق التوجيه. يرى http://msdn.microsoft.com/en-us/library/cc288325(V=VS.85).aspx. في هذه الحالة، إذن

<!-- this -->
<!DOCTYPE html>
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=8" ><![endif]-->

إرادة فرض IE8 و IE9 في لا quirks. الوضع، في حين أن IE6 و IE7 ستبقى في quirks. الوضع. في حين، في المقابل، هذه

<!--[if gte IE 8]><meta http-equiv="X-UA-Compatible" content="IE=8" ><![endif]-->
<!DOCTYPE html>

سيكون فرض IE8 و IE9 في وضع المعايير، على الرغم من أن محتوى التعليق الشرطي يفعل ليس تبدأ مع doctype. وسيظل IE6 و IE7 أيضا في وضع عدم وجود Quirks لأن التعليق الشرطي لا يستهدفها.

في حين أنه من المقبول حسب المعيار الذي أؤمن به، فأنت ترغب بالتأكيد في تجنب ذلك، كما سترمي IE في وضع Quirks.

(يرى يؤدي إلى وضع أوضاع التقديم المختلفة)

قد يتسبب ذلك في تقديم IE7 في وضع Quirks كما لو أن DocType لم يكن هناك على الإطلاق، وفقا ل هذه الصفحة.

التعليقات قبل السماح DocType، ولكن السبب الكل أي إصدارات للعودة إلى وضع Quirks. هم، في الواقع، يستخدم لهذا الغرض في بعض الأحيان. إعلان XML (<?xml version ...?>) لديهم نفس التأثير، في IE6 وما دون.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top