الشرطات السفلية (_) في اسماء محددات الاصناف والمعرفات (Class & ID)

This translation is incomplete. Please help translate this article from English

ملاحظة: لقد تم تحسين دعم المتصفح للشرطة السفلية (_) في CSS بشكل كبير منذ تاريخ نشر هذه المقالة في عام 2001 ولم تعد التوصية التالية دقيقة بالنسبة لمعظم الظروف

Summary: The use of the underscore character in CSS can lead to major display problems in multiple browsers. Learn why this is so, and how to keep your sites from being bitten by this problem. تدرس هذه المذكرة التقنية استخدام الشرطات السفلية (_) في CSS ، ولماذا يجب تجنب استخدامها في معظم الظؤوف

يعد استخدام الشرطة السفلية (_)  في اسماء المتغيرات والدوال (الوظائف)  امراً شائعاَ نوعا ما في العديد من لغات البرمجة. على سبيل المثال دالة وظيفتها "الحصول على طول سلسلة نصية" قد تتم تسميتها get_string_length او متحول يمثل عدد الاشخاص الذين قالمو بالتصويت قد يسمى voted_Republican 

نظرا لهذه الحقيقة، غالبا مايحاول المطورين الذين يكتبون CSS استخدام الشرطة السفلية باسلوب مماثل في تسمية المعرفات ومحددات الاصناف (Class & ID). ولا ينبغي القيام بذلك. على الرغم من ان الشرطة السفلية (_) مسموح بها تقنيا في اسماء المعرفات ومحددات الاصناف حتى تاريخ كتابة هذه السطور، هناك العديد من الاسباب التاريخة والعملية التي توضح اسباب وجوب تجنب استخدام الشرطة السفلية (_)

مواصفات CSS1 التي تم اصدرت في شكلها النهائي عام 1996 لا تسمح باستخدام الشرطة السفلية (_) في اسماء المعرفات ومحددات الاصناف مالم تستخدم حرف الهروب (escaped) على النحو التالي:

p.urgent\_note {color: maroon;}

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

CSS2 التي تم اصدرت في عام 1998 ايضا منعت استخدام الشرطة السفلية (_) في أسماء المعرفات ومحددات الاصناف ومع ذلك فان تصحيح الاخطاء في المواصفات التي تم اصدارها عام 2001 جعلت استخدام الشرطة السفلية مسموحاً لاول مرة. مما ادى للاسف لتعقيد المشهد المعقد بالفعل 

دعم الحقائق

بين الاخطاء في التفيذ والتغيرات في المواصفات، سلوك المتصفحات في ما يتعلق باستخدام الشرطات السفلية معقد الى حد ما.

  • Netscape 6.x يسمح بالشرطات السفلية والشرطات السفلية الهاربة (escaped)
  • Navigator 4.X قام بدعم فرض قيود على استخدام الشرطات السفلية وبالتالي سيقوم بتجاهل اي اسماء معرفات او محددات اصناف تحتوي شرطة سفلية وبذلك لن يتم تطبيق انماط CSS المرتبطة بها. كما انه يتجاهل الشرطات السفلية الهاربة (escaped)
  • Internet Explorer 4.x and 5.x للويندوز (Microsoft Windows) سمح باستخدام الشرطة السفلية عن طريق الخطأ وكذلك كلا الاصدارين غير متوافقين في هذه النقطة حتى تم نشر تصحيح  الاخطاء. وكذلك ينطبق الامر نفسه على كلا الاصدراين للماكنتوش (Mac)
  • Internet Explorer 6 للويندوز (Microsoft Windows) تم اصداره بعد تصحيح الاخطاء، يسمح بالشرطات السفلية والشرطات السفلية الهاربة (escaped)
  • Opera 3.x الى Opera 5.x لا يعترف بالشرطة السفلية ولا الشرطة السفلية الهاربة (ecsaped) حيث انه يتصرف مثل Navigator 4.x في هذا الصدد

التوصية

لان دعم الشرطة السفلية غير متناسق للغاية في المتصفحات الحالية وكذلك الاصدارات القديمة منها، ينصح المؤلفون بشدة بتجبن استخدام الشرطة السفلية في اسماء المعرفات ومحددات الاصناف.

البديل الشائع لها هو الحرف الواصلة (-)  كما في:

p.urgent-note {color: maroon;}

 يختار العديد من المطورين الكتابة بطريقة حالة الجمل (Camle Case) مثال:

p.urgentNote {color: maroon;}

If the initial-cap approach is used, however, remember that class and ID names are also supposed to be case-sensitive. See the tech note "Case Sensitivity in class and id Names" for more details.

Original Document Information

  • Author(s): Eric A. Meyer, Netscape Communications
  • Last Updated Date: Published 05 Mar 2001
  • Copyright Information: Copyright © 2001-2003 Netscape. All rights reserved.
  • Note: This reprinted article was originally part of the DevEdge site.