راهنمای HTML : درک ویژگیها و حالتهای استاندارد
در گذشتههای دور، صفحات وب معمولاً در دو نسخه نوشته میشدند: یکی برای Netscape Navigator و دیگری برای Microsoft Internet Explorer. وقتی استانداردهای وب در W3C تدوین شدند، مرورگرها نمیتوانستند به سادگی از آنها استفاده کنند، زیرا این کار باعث اختلال در اکثر سایتهای موجود در وب میشد. بنابراین، مرورگرها دو حالت را برای برخورد متفاوت با سایتهای سازگار با استانداردهای جدید نسبت به سایتهای قدیمی معرفی کردند.
اکنون سه حالت توسط موتورهای طرحبندی در مرورگرهای وب استفاده میشود: حالت quirks، حالت limited-quirks و حالت no-quirks. در حالت quirks، طرحبندی رفتار Navigator 4 و Internet Explorer 5 را شبیهسازی میکند. این امر برای پشتیبانی از وبسایتهایی که قبل از پذیرش گسترده استانداردهای وب ساخته شدهاند، ضروری است. در حالت no-quirks، رفتار (امیدوارانه) همان رفتار مطلوبی است که توسط مشخصات مدرن HTML و CSS توصیف شده است. در حالت limited-quirks، تنها تعداد بسیار کمی quirks پیادهسازی شده است.
حالتهای limited-quirks و no-quirks قبلاً به ترتیب حالت "تقریباً استاندارد" و حالت "استانداردهای کامل" نامیده میشدند. این نامها با استاندارد شدن رفتار، تغییر کردهاند.
مرورگرها چگونه تشخیص میدهند که از کدام حالت استفاده کنند؟
برای اسناد HTML، مرورگرها از یک نوع سند () در ابتدای سند استفاده میکنند تا تصمیم بگیرند که آیا آن را در حالت quirks یا no-quirks مدیریت کنند. برای اطمینان از اینکه صفحه شما از حالت no-quirks استفاده میکند، مطمئن شوید که صفحه شما دارای یک نوع سند () مانند این مثال است:
نوع سندی که در مثال نشان داده شده است، ، سادهترین نوع ممکن و همانی است که توسط استانداردهای فعلی HTML توصیه میشود. نسخههای قبلی استاندارد HTML انواع دیگری را توصیه میکردند، اما همه مرورگرهای موجود امروزه از حالت بدون تغییر برای این نوع سند استفاده میکنند. هیچ دلیل موجهی برای استفاده از یک نوع سند پیچیدهتر وجود ندارد. اگر از نوع سند دیگری استفاده کنید، ممکن است خطر انتخاب نوعی را داشته باشید که حالت تغییر محدود یا حالت تغییر را فعال کند.
نوع سند را درست در ابتدای سند HTML خود، قبل از هر محتوای دیگری قرار دهید.
تنها هدف فعال کردن حالت بدون تغییر است. نسخههای قدیمیتر نوع سندهای استاندارد HTML معنای بیشتری ارائه میدادند، اما هیچ مرورگری هرگز از نوع سند برای چیزی غیر از جابجایی بین حالتهای رندر استفاده نمیکرد.
همچنین به شرح مفصلی از زمانی که مرورگرهای مختلف حالتهای مختلف را انتخاب میکنند، مراجعه کنید.
اگر صفحه خود را به صورت XHTML با استفاده از نوع MIME در هدر HTTP ارائه میدهید، برای فعال کردن حالت no-quirks نیازی به doctype ندارید، زیرا چنین اسنادی همیشه از حالت no-quirks استفاده میکنند.
اگر محتوایی شبیه به XHTML را با استفاده از نوع MIME ارائه میدهید، مرورگرها آن را به صورت HTML میخوانند و برای استفاده از حالت no-quirks به doctype نیاز خواهید داشت.
چطور ببینم از کدام حالت استفاده شده است؟
اگر صفحه در حالت quirks یا limited-quirks رندر شود، فایرفاکس یک هشدار در تب کنسول در ابزارهای توسعهدهندگان ثبت میکند. اگر این هشدار نشان داده نشود، فایرفاکس از حالت no-quirks استفاده میکند.
مقدار در جاوا اسکریپت نشان میدهد که آیا سند در حالت quirks است یا خیر. اگر مقدار آن "BackCompat" باشد، سند در حالت quirks است. اگر نباشد، مقدار آن "CSS1Compat" خواهد بود.