ما هي أنواع المستندات المختلفة في html وماذا تعني؟

StackOverflow https://stackoverflow.com/questions/255470

  •  05-07-2019
  •  | 
  •  

سؤال

كما يوضح العنوان، ما هي الأنواع المختلفة المتاحة وماذا تعني؟لاحظت أن التخطيط يبدو مختلفًا بعض الشيء في IE7 عندما أقوم بالتبديل منه

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

ل

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

هل هناك أي غيرها وما هي الآثار أو التداعيات؟

شكرًا!

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

المحلول

أ نوع الوثيقة, ، أو إعلان نوع الوثيقة يربط المستند بـ a تعريف نوع الوثيقة.

ال تعريف نوع الوثيقة هو المعيار لوثيقة XML.هناك العديد من DTDs لكل من مستندات XML وXHTML.لا يحتوي ملف XML نفسه على الكثير من المخططات أو مجموعة محددة جدًا من القواعد، باستثناء شرط أن يكون كل شيء مُصاغًا بشكل جيد.يمكنك التفكير في DTD باعتباره أكثر تحديدًا مخطط للوثيقة.

أوضاع العرض

نظرًا لحركة المعايير، فإن معظم المتصفحات الحديثة لديها بالفعل أوضاع عرض مختلفة (وضع المعايير, ، لعرض مستندك وملف CSS الخاص بك وفقًا لمعايير الويب الأحدث، و وضع المراوغات, ، حيث يعيد المتصفح بعض أفكار العرض من الأيام الأولى للويب).تم إنشاء هذه الأوضاع لأغراض التوافق مع الإصدارات السابقة.يتم عرض المشهد الواسع لصفحات الويب التي تم إنشاؤها في العصر الأول للويب وفقًا لقواعد وقتها، بينما يمكن للمستندات الأحدث أن تروق للموجة الجديدة من المعايير.ومع مرور الوقت وتخيل التنسيقات الجديدة، من المحتمل إنشاء DTD مطابق.

تناقضات المتصفح

في عالم مثالي، ستقرأ الصفحة التي يتم تحميلها بواسطة المتصفح Doctype في الأعلى وتستخدمها للبحث عن تعريف نوع المستند.ثم يستخدم مخطط DTD هذا كأساس لقراءة بقية المستند.إذن، ستكون أنواع المستندات ضرورية للتحقق من صحة المستندات الترميزية.سيوفر DTD المعيار الذي سيتم من خلاله التحقق من صحة المستند الخاص بك.

لسوء الحظ، إنه ليس عالمًا مثاليًا.لا تتصرف المتصفحات بالضرورة بشكل متسق هنا، وإذا فعلت ذلك، فإن السلوك المتسق لا يتماشى تمامًا مع الرؤية الأصلية لـ Doctypes.على الرغم من أن التحليل يتم بشكل مستقل عن Doctype، إلا أن المتصفحات الرئيسية ستقوم على الأقل بفحص Doctype لتحديد وضع العرض.إذا كان Doctype الخاص بك غائبًا أو غير مكتمل، فمن المحتمل أن يتم عرض المتصفح وضع المراوغات.لكي تظهر المستندات الحديثة المكتوبة جيدًا بشكل صحيح، يجب أن يتم عرض المتصفح وضع المعايير.تقوم Mozilla وSafari وبعض الإصدارات الحديثة من Opera بتنفيذ تطبيق المعايير تقريبا الوضع المخصص بالكامل للصفحات الانتقالية.

عندما تقوم بتغيير Doctype وتلاحظ تغييرات في طريقة عرض الصفحة، فذلك لأن المتصفح قد يطبق مجموعة مختلفة قليلاً من القواعد عندما يحاول تحليل المستند.ونتيجة لذلك، قد تكون الصفحة الناتجة مختلفة قليلاً، اعتمادًا على ما إذا كانت جميع أجزائها تتوافق مع DTD، أو على الأقل، اعتمادًا على المتصفح، الذي يتم التحقق من صحة بياناتك ضمن وضع العرض الذي يقترحه نوع المستند.

اختيار نوع الوثيقة

في السعي لتحقيق الامتثال للمعايير، يجب استخدام أنواع Doctypes الصارمة كلما أمكن ذلك.

عند الكتابة في XHTML, ، هذا النوع Doctype شائع:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

عند الكتابة في أتش تي أم أل 4.1, ، هذا شائع بدلاً من ذلك:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

تم إدراج بعض أنواع المستندات الشائعة الأخرى لـ XHTML وHTML 4 هنا، من أجل اكتمالها:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

نقاش حول الأنماط الصارمة مقابل النماذج الانتقالية

دعا مبشرو المعايير مطوري الويب إلى التوقف عن استخدام Transitional Doctype في الصفحات الجديدة واستخدام Strict بدلاً من ذلك.مرة أخرى، هذه هي الحالة التي تواجه فيها النظرية والممارسة بعض الصعوبات في التوفيق بينهما.كان الأمل الأصلي لـ Doctype الانتقالي هو توفير حل وسط لنقل مواقع الويب القديمة نحو الامتثال للمعايير.مع أنواع المستندات الانتقالية، يكون التقييد على العناصر والسمات "أقل صرامة" حرفيًا، لذلك سيتمكن المطورون من تشغيل عملهم ضمن الوضع القياسي في وقت أقرب، والتخلص التدريجي من الاختلافات البارزة بمرور الوقت.

يوجد جدل لأنه ليس من السهل دائمًا أن يقوم المطور بتغيير Doctype في بيئة المؤسسة.غالبًا ما يكون لدى المطورين المستقلين وصانعي مواقع الويب الصغيرة أو المتوسطة الحجم وقتًا أسهل في تحديد نوع Doctype الخاص بهم وإجراء هذا التحول.في بيئة إنتاج المؤسسة لخدمة مستندة إلى الويب مطلوبة بشدة، توجد تبعيات أكثر تعقيدًا بطبيعتها على الأنظمة القديمة ومنتجات التعليمات البرمجية التابعة لجهات خارجية، والتي قد تكون في حد ذاتها على خريطة طريق للإزالة أو إعادة التصميم، ولكن يجب أن يكون تنفيذ مثل هذه التغييرات يتم بشكل منهجي وتدريجي.

أدوات مفيدة

W3C (اتحاد شبكة ويب العالمية) هي مجموعة تلعب دورًا نشطًا في تحديد هذه الأنواع من المعايير.لديهم أداة مفيدة عبر الإنترنت في http://validator.w3.org/ للتحقق والتحقق من صحة الوثائق وفقا لمعاييرها.هناك العديد من أدوات الطرف الثالث و ملحقات المتصفح مع وظائف مماثلة.

نصائح أخرى

المتصفحات لا تهتم ما نوع المستند الذي تستخدمه (حسنًا، صحيح تقريبًا)، فهم يستخدمونه لشيء واحد وشيء واحد فقط:لتقرر أي منها وضع التقديم ليستخدم.انظر على سبيل المثال.ال الفوركس أو وثائق الأوبرا للحصول على أمثلة من العالم الحقيقي حول الخوارزميات المستخدمة لتحديد الوضع الذي سيتم استخدامه (أعتقد أن هناك بعض الوثائق الخاصة بـ IE مدفونة في مكان ما في MSDN أيضًا ...[قد تكون هذه هي الصفحة الصحيحة](http://msdn.microsoft.com/en-us/library/ms535242(VS.85).aspx), ، لا أعرف، آسف).

ومع ذلك، هناك وضعان رئيسيان في معظم المتصفحات (بعض المتصفحات تحتوي على وضع وضع المعايير تقريبا أيضاً):

  • وضع المراوغات (يُستخدم عند عدم العثور على نوع مستند "صحيح"، "صحيح" من وجهة نظر المتصفحات):حاول عرض المستند كما تفعل بعض الإصدارات القديمة من IE (أحد أهم الاختلافات، أي.أكثر ما يؤثر على العرض هو أن بعض المتصفحات تستغل خطأ في نموذج صندوق IE في هذا الوضع)،
  • و الوضع القياسي (يُستخدم عندما يعثر المتصفح على نوع مستند يعتبره صحيحًا):حاول أن تفعل كما تقول المعايير.

يمكنك استخدام (غير قياسي) document.compatMode الخاصية في المتصفحات المذكورة سابقًا للتحقق من الوضع الذي تم استخدامه لعرض المستند الحالي.

(ملاحظة حول XHTML:افترضت أنك تقدم لك المستندات بتنسيق HTML (text/html)، إذا كنت تقدم لك مستندًا بتنسيق XHTML (ربما application/xhtml+xml) تنتقل معظم المتصفحات إلى الوضع القياسي مباشرةً ولا تهتم بنوع المستند على الإطلاق AFAIK.)

بالمناسبة:التوصية (أو ما يشبه التوصية) في الإجابة الأخرى معطلة، و انتقالية لا ينبغي استخدام DTD في المستندات الجديدة.استخدم دائمًا الصارم (المصطلح "صارم" مضلل نوعًا ما، ويجب أن يكون "افتراضيًا" أو أي شيء آخر غير مخيف)، النقطة:

يجب على المؤلفين استخدام Strict DTD عندما يكون ذلك ممكنًا، ولكن يمكنهم استخدام Transitional DTD عندما يكون دعم سمة العرض التقديمي وعناصره مطلوبًا.-- أتش تي أم أل 4.01:22 تعريف نوع الوثيقة الانتقالية.

نوصي المؤلفين بكتابة المستندات التي تتوافق مع DTD الصارمة بدلاً من DTDs الأخرى المحددة في هذه المواصفات.-- أتش تي أم أل 4.01:4 المطابقة:المتطلبات والتوصيات

وهناك العديد من منشورات المدونات حول هذا الموضوع، على سبيل المثال. لا مزيد من أنواع المستندات الانتقالية، من فضلك (من عام 2006، ولكن بعض, ، ومن الواضح، لا تزال تواجه مشاكل مع هذا :).

بدأت هذه المشاركة بالإشارة إلى أن المتصفحات لا تهتم بما تختاره، ثم تطورت إلى صخب حول كيفية اختيار DTD الصحيح، وهو أمر مثير للاهتمام ...ولكن إذا كنت ستقضي (/تضيع؟) الوقت والطاقة لاختيار DTD، فمن الأفضل أن تختار الخيار الصحيح (من منظور HTML 4.01 القياسي).

أو, ، يمكنك تجاهل كل هذا واستخدام ما يلي بدلا من ذلك، قريباً على أي حال:

<!doctype html>

(هذه الإجابة إلى "أي سبب لعدم البدء في استخدام HTML 5 Doctype؟" كان نوعًا ما يتعلق بالجزء الأخير.)

وهنا هو التفسير الرسمي لمختلف وDTD من W3C:

<لأ href = "HTTP: //www.w3.org/QA/2002/04/valid-dtd-list.html "يختلط =" نوفولو noreferrer "> http://www.w3.org/QA/2002/04/valid-dtd-list هتمل

وقد تجد أيضا ما يلي مفيدة:

<لأ href = "HTTP: //www.freedivs كوم / دروس / اختيار٪ 20A٪ 20DOCTYPE / "يختلط =" نوفولو noreferrer "> http://www.freedivs.com/tutorials/Choosing٪20a٪20DOCTYPE/

هناك الكثير من المعلومات الخاطئة حول أنواع المستندات.ينبع الارتباك من حقيقة أن أنواع المستندات كانت في الأصل مخصصة لغرض واحد (تحديد DTD، أي.إصدار HTML المستخدم)، ولكن في المتصفحات الواقعية يتم استخدامها لغرض غير ذي صلة على الإطلاق.

تُستخدم إعلانات Doctype فقط من أجل شئ واحد في متصفحات اليوم، يتم التبديل بين المراوغات وضع العرض و المعايير وضع العرض لـ CSS.لذا فهو في الأساس شيء يتعلق بـ CSS، وليس شيئًا HTML.

يعد عرض وضع Quirks متوافقًا مع بعض أخطاء العرض القديمة في المتصفحات القديمة، وهو مفيد في الغالب للمحتوى القديم الذي لا تريد إصلاحه.يجب أن يستخدم المحتوى الجديد الوضع القياسي دائمًا، لأنه يصبح أكثر صحة واتساقًا بين المتصفحات.(لا تزال هناك اختلافات في العرض بين المتصفحات عند استخدام الوضع القياسي، ولكن هناك اختلافات أسوأ بكثير في وضع المراوغات.)

نعم هو كذلك لا لن يحدث أي فرق سواء اخترت نوع مستند HTML أو XHTML، ولن يحدث أي فرق إذا اخترت نوع مستند صارم أو انتقالي.يتم تحديد وضع العرض بشكل أساسي على النحو التالي:

  • إذا لم يكن المستند يحتوي على أي مستند، المراوغات تم تحديد الوضع.
  • إذا كانت الوثيقة تحتوي على غير معروف نوع الوثيقة, المعايير تم تحديد الوضع.هذا يعني أنه يمكنك كتابة نوع مستند عشوائي مثل <!DOCTYPE Chris> وسوف تعمل بشكل جيد تماما.
  • أنواع مستندات W3C الرسمية بدون يتم تحديد عنوان URL الصحيح (السلسلة الثانية في العلامة). المراوغات وضع.تختار جميع أنواع المستندات الأخرى الوضع القياسي.(يحرر:بالطبع الأمر أكثر تعقيدًا من ذلك، بل ويختلف بين المتصفحات أي من أنواع المستندات المعترف بها يؤدي إلى تشغيل وضع المراوغات.حد ذاته نظرة عامة على هسيفونينز, ، مرتبط من إجابة أخرى.)

تاريخيًا، كان الهدف من أنواع المستندات هو الإعلان عن الإصدار والمجموعة الفرعية من HTML التي تم استخدامها.يحدد HTML4 عدة إصدارات، حيث يسمح "الانتقالي" بعدد من العناصر والسمات التي (مثل FONT) غير مسموح بها في "صارم".يمكن للمتصفح نظريًا معالجة المستندات "الصارمة" بشكل مختلف عن المستند "الانتقالي".لكن لا يوجد متصفح يفعل هذا بالفعل.

يحرر:يشير scunliffe إلى أن IE8 سيكون له وضع عرض آخر، وهو وضع "معايير IE8".ومع ذلك، لا يتم تشغيل هذا الوضع بواسطة AFAIK بواسطة نوع مستند ولكن بواسطة علامة وصفية.

والأساس، ويحدد نوع المستند كيف مجنون IE سيكون.

إذا كنت لا تعيينها إلى XHTML، أو "صارمة" عليك أن تعيش في عالم من الأذى عندما يتعلق الأمر IE (حتى إذا قمت بتعيين ذلك، فسوف لا تزال كره على IE، لكنه لا تجعل من أفضل كثيرا).

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