العربية

أطلق العنان للتصميم المتجاوب مع وحدات طول استعلام الحاوية في CSS (cqw, cqh, cqi, cqb, cqmin, cqmax). تعلم تقنيات تغيير الحجم النسبي للعناصر للتصميمات الديناميكية.

وحدات طول استعلام الحاوية في CSS: إتقان تغيير الحجم النسبي للعناصر

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

فهم استعلامات الحاوية

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

لإنشاء حاوية، يمكنك استخدام خاصية container-type على عنصر أب. يمكن تعيين container-type إلى size أو inline-size أو normal. تستجيب size لتغيرات العرض والارتفاع في الحاوية. بينما تستجيب inline-size للعرض فقط، و normal تعني أن العنصر ليس حاوية استعلام.

مثال:

.container {
  container-type: inline-size;
}

@container (min-width: 400px) {
  .element {
    /* تُطبّق الأنماط عندما يكون عرض الحاوية 400 بكسل على الأقل */
  }
}

مقدمة إلى وحدات طول استعلام الحاوية (CQLUs)

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

فيما يلي تفصيل لوحدات CQLUs المتاحة:

توفر هذه الوحدات تحكمًا دقيقًا في حجم العناصر بالنسبة لحاوياتها، مما يتيح تخطيطات تكيفية تستجيب ديناميكيًا للسياقات المختلفة. تعتبر المتغيرات i و b مفيدة بشكل خاص لدعم التدويل (i18n) والتعريب (l10n) حيث يمكن أن تتغير أوضاع الكتابة.

أمثلة عملية لاستخدام وحدات CQLUs

دعنا نستكشف بعض الأمثلة العملية لكيفية استخدام وحدات CQLUs لإنشاء تخطيطات ديناميكية وقابلة للتكيف.

مثال 1: تصميم بطاقة متجاوب

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

.card-container {
  container-type: inline-size;
  width: 300px; /* تعيين عرض افتراضي */
}

.card-title {
  font-size: 5cqw; /* حجم الخط نسبي لعرض الحاوية */
}

.card-content {
  padding: 2cqw; /* الحشوة نسبية لعرض الحاوية */
}

@container (min-width: 400px) {
  .card-title {
    font-size: 4cqw; /* تعديل حجم الخط للحاويات الأكبر */
  }
}

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

مثال 2: قائمة تنقل تكيفية

يمكن أيضًا استخدام وحدات CQLUs لإنشاء قوائم تنقل تكيفية تعدل تخطيطها بناءً على المساحة المتاحة. على سبيل المثال، يمكننا استخدام cqw للتحكم في التباعد بين عناصر القائمة.

.nav-container {
  container-type: inline-size;
  display: flex;
  justify-content: space-between;
}

.nav-item {
  margin-right: 2cqw; /* التباعد نسبي لعرض الحاوية */
}

هنا، يكون التباعد بين عناصر التنقل متناسبًا مع عرض حاوية التنقل. هذا يضمن أن تكون عناصر القائمة متباعدة بشكل متساوٍ دائمًا، بغض النظر عن حجم الشاشة أو عدد العناصر في القائمة.

مثال 3: تغيير حجم الصور الديناميكي

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

.image-container {
  container-type: inline-size;
  width: 500px;
}

.image-container img {
  width: 100cqw; /* عرض الصورة نسبي لعرض الحاوية */
  height: auto;
}

في هذه الحالة، سيكون عرض الصورة دائمًا 100% من عرض الحاوية، مما يضمن أنها تملأ المساحة المتاحة دون تجاوز. تحافظ خاصية height: auto; على نسبة أبعاد الصورة.

مثال 4: دعم أوضاع الكتابة المختلفة (i18n/l10n)

تصبح وحدتا cqi و cqb ذات قيمة خاصة عند التعامل مع التدويل. تخيل مكونًا يحتوي على نص يحتاج إلى التكيف سواء كان وضع الكتابة أفقيًا أم عموديًا.

.text-container {
  container-type: size;
  writing-mode: horizontal-tb; /* وضع الكتابة الافتراضي */
  width: 400px;
  height: 200px;
}

.text-element {
  font-size: 4cqb; /* حجم الخط نسبي لحجم الكتلة */
  padding: 2cqi; /* الحشوة نسبية للحجم المضمّن */
}

@media (orientation: portrait) {
  .text-container {
    writing-mode: vertical-rl; /* وضع الكتابة العمودي */
  }
}

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

مثال 5: استخدام cqmin و cqmax

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

.circle-container {
  container-type: size;
  width: 300px;
  height: 200px;
}

.circle {
  width: 100cqmin;
  height: 100cqmin;
  border-radius: 50%;
  background-color: #ccc;
}

ستكون الدائرة دائمًا دائرة مثالية وسيتم تحديد حجمها حسب البعد الأصغر لحاويتها.

فوائد استخدام وحدات CQLUs

فوائد استخدام وحدات CQLUs عديدة وتساهم بشكل كبير في إنشاء تصميمات متجاوبة قوية وقابلة للصيانة:

اعتبارات عند استخدام وحدات CQLUs

بينما توفر وحدات CQLUs أداة قوية للتصميم المتجاوب، من المهم أن تكون على دراية ببعض الاعتبارات:

أفضل الممارسات لاستخدام وحدات CQLUs

لتحقيق أقصى استفادة من وحدات CQLUs وتجنب المخاطر المحتملة، اتبع أفضل الممارسات التالية:

مستقبل التصميم المتجاوب

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

الخاتمة

تُعد وحدات طول استعلام الحاوية (CQLUs) إضافة قوية إلى مجموعة أدوات CSS، حيث تمكّن المطورين من إنشاء تصميمات متجاوبة حقًا تتكيف مع أبعاد حاوياتها. من خلال فهم الفروق الدقيقة في cqw، cqh، cqi، cqb، cqmin، و cqmax، يمكنك فتح مستوى جديد من التحكم في حجم العناصر وإنشاء تجارب ويب ديناميكية وقابلة للصيانة وسهلة الاستخدام. اغتنم قوة وحدات CQLUs وارتقِ بمهاراتك في التصميم المتجاوب إلى آفاق جديدة.