هل توجد قائمة بشروط المتصفح للاستخدام بما في ذلك أوراق الأنماط؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

لقد رأيت أشخاصًا يفعلون أشياء مثل هذه في HTML الخاص بهم:

<!--[if IE]>
  <link rel="stylesheet" href="ie.css" type="text/css" />
<![endif]-->

هل يعمل هذا عبر جميع المتصفحات الحديثة وهل هناك قائمة بأنواع المتصفحات التي ستعمل مع هذا النوع من عبارة if؟

يحرر

شكرًا روس.ومن المثير للاهتمام معرفة ذلك جي تي، إل تي، جي تي إي، و إل تي إي.

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

المحلول

يعمل هذا عبر جميع المتصفحات لأن أي شيء باستثناء IE يرى <!--IGNORED COMMENT-->.يقرأ IE فقط التعليق إذا كان يحتوي على جملة شرطية.القي نظرة على هذا المقال

يمكنك أيضًا تحديد إصدار IE.على سبيل المثال:

<!--[if IE 8]>
<link rel="stylesheet type="text/css" href="ie8.css" />
<![endif]-->

نصائح أخرى

إذا كان بإمكانك استخدام Javascript، فهناك عدة خيارات:

navigator.appName
navigator.appVersion 

وصلة

أو شيء أكثر قوة باستخدام مكتبة مثل مسج.

وأخيرا، يمكنك استخدام BrowserDetect كائن من QuirksMode.

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

بالإضافة إلى إجابة روس، يمكنك فقط استهداف محرك عرض Internet Explorer بالتعليقات المشروطة؛لا يوجد بناء مماثل للمتصفحات الأخرى.على سبيل المثال، لا يمكنك كتابة تعليقات مشروطة تستهدف Firefox، ولكن يتم تجاهلها بواسطة Internet Explorer.

الطريقة التي أحقق بها نفس التأثير كما في المثال أعلاه هي استنشاق سلسلة وكيل المستخدم.ثم أقوم بتسليم ملف CSS مناسب لهذا المتصفح.هذا ليس مثاليًا لأنه في بعض الأحيان يقوم الأشخاص بتغيير سلسلة وكيل المستخدم الخاصة بهم من أجل التوافق.

الطريقة الأخرى لاستهداف متصفحات مختلفة هي استخدام الاختراقات الخاصة بالمتصفح.هذه سيئة بشكل خاص لأنها تعتمد عادةً على الأخطاء الموجودة في المتصفح ومن المحتمل إصلاح الأخطاء!

يعد استنشاق وكيل المستخدم هو الحل الشامل الأفضل في رأيي.

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

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