🎯 إعادة ترتيب العناصر بسهولة مع خاصية Order في CSS

اليوم سنتعلم واحدة من أسهل وأقوى الخصائص في CSS Flexbox، وهي خاصية order. إذا كنت تريد تغيير ترتيب العناصر في صفحتك دون تغيير HTML، فأنت في المكان الصحيح! 🚀


📝 ما هي خاصية Order؟

خاصية order تسمح لك بالتحكم في الترتيب الذي تظهر به العناصر داخل حاوية Flexbox. المميز هنا أنك تستطيع تغيير هذا الترتيب باستخدام CSS فقط، دون الحاجة لتعديل كود HTML الأصلي.

القيمة الافتراضية لأي عنصر هي 0. وهذا يعني أن العناصر تظهر بنفس الترتيب الموجود في ملف HTML.

.item {
    order: 0; /* هذه هي القيمة الافتراضية */
}

🔢 كيف تعمل قيم Order؟

تعمل خاصية order بناءً على مبدأ بسيط جداً: العناصر ذات القيم الأصغر تظهر أولاً.

  • العنصر ذو order: -1 سيظهر قبل العنصر ذو order: 0
  • العنصر ذو order: 2 سيظهر بعد العنصر ذو order: 1

لنفهم هذا بمثال عملي:

<div class="container">
    <div class="box box1">الصندوق 1</div>
    <div class="box box2">الصندوق 2</div>
    <div class="box box3">الصندوق 3</div>
</div>
.container {
    display: flex; /* نجعل الحاوية مرنة */
}

.box1 { order: 2; }  /* سيظهر ثالثاً */
.box2 { order: 3; }  /* سيظهر رابعاً */
.box3 { order: 1; }  /* سيظهر ثانياً */

في هذا المثال، سيكون الترتيب النهائي: الصندوق 3 → الصندوق 1 → الصندوق 2


🎨 مثال تطبيقي: تغيير ترتيب البطاقات

لنفترض أن لدينا ثلاثة بطاقات نريد عرضها، لكننا نريد تغيير ترتيبها على الشاشات الصغيرة (الهواتف):

.card {
    padding: 20px;
    margin: 10px;
    background: #f0f0f0;
}

/* الترتيب الافتراضي في الشاشات الكبيرة */
.card1 { order: 1; }
.card2 { order: 2; }
.card3 { order: 3; }

/* تغيير الترتيب في الشاشات الصغيرة */
@media (max-width: 768px) {
    .card1 { order: 3; }  /* تصبح الأخيرة */
    .card2 { order: 1; }  /* تصبح الأولى */
    .card3 { order: 2; }  /* تصبح الثانية */
}

هذا المثال يوضح كيف يمكن استخدام order مع Media Queries لإنشاء تصاميم متجاوبة بسهولة. 📱


⚠️ ملاحظات هامة يجب تذكرها

  1. لا تؤثر على HTML: تغيير الـ order لا يغير الترتيب الحقيقي في كود HTML، فقط المظهر النهائي للمستخدم.

  2. للتخطيطات المرنة فقط: تعمل خاصية order فقط على العناصر الموجودة داخل حاوية Flexbox (أي عنصر لديه display: flex).

  3. القيم السالبة مسموحة: يمكنك استخدام قيم سالبة مثل -1، -2، إلخ.

  4. القيم المتساوية: إذا كان لعناصر متعددة نفس قيمة order، فسيتم عرضها بالترتيب الذي تظهر به في HTML.


💡 متى نستخدم خاصية Order؟

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