دراسات الحالة لطلبات البحث في الحاويات

Swetha Gopalakrishnan
Swetha Gopalakrishnan
Saurabh Rajpal
Saurabh Rajpal

توفّر طلبات البحث عن الحاويات نهجًا ديناميكيًا ومرنًا للغاية لتصميم الصفحات المتوافقة مع الأجهزة الجوّالة. تستخدِم طلبات البحث عن الحاويات قاعدة at-rule‏ @container. يعمل هذا الإجراء بطريقة مشابهة لطلب البحث عن الوسائط باستخدام @media، ولكن بدلاً من ذلك، يطلب @container من حاوية والد معلومات التصميم بدلاً من إطار العرض ووكيل المستخدم.

طلبات البحث عن الحاويات هي جزء من البيانات الأساسية المتوفّرة حديثًا.

توافق المتصفّح

  • Chrome: 105
  • ‫Edge: 105
  • Firefox: 110
  • ‫Safari: 16

المصدر

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

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

صورة توضّح كيفية تنسيق أنواع مختلفة من المحتوى معًا
web.dev: الإصدار الجديد من ميزة "التصميم السريع الاستجابة"

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

redBus

تحافظ شركة redBus على رمز مختلف وتعرضه لإصدارات الأجهزة الجوّالة وأجهزة الكمبيوتر المكتبي. بعد تنفيذ طلبات البحث عن الحاويات في صفحتَي نشاطات مقترَحة و البضائع، تمكّنت الشركة من توحيد هذا الرمز في قاعدة بيانات رمزية واحدة لهذين الموقعَين الإلكترونيَين. وقد ساهم ذلك في تحسين استجابة التطبيق وتوفير وقت التطوير. يوضّح المثال التالي ذلك باستخدام صفحة الشحن:

الرمز

في المثال التالي، .bpdpCardWrapper هي الحاوية الرئيسية، المسمّاة bpdpSection.

إذا كان الحد الأدنى لعرض الحاوية bpdpSection هو 744 بكسل، يتم تعديل font-size وline-height للمكوّنات التي تم اختيارها بواسطة .bpdpCardContainer و .subTxt, .bpdpAddress.

//Code for Container Queries
.bpdpCardWrapper {
   container-type: inline-size;
   container-name: bpdpSection;
}
@container bpdpSection (min-width: 744px){
   .bpdpCardContainer{
      font-size: 1rem;
      line-height: 1.5rem;
   }

   .subTxt, .bpdpAddress{
       font-size: 0.875rem;
       line-height: 1.25rem;
   }
}

التأثير

قبل (قاعدة رموز متعدّدة) بعد (قاعدة رمزية واحدة)
البنية الأساسية بنية أساسية منفصلة (تكلفة عالية) البنية الأساسية نفسها (تكلفة مخفضة)
التصميم واجهة مستخدم منفصلة ولكنّها غير متّسقة من الصعب حلّها، ولكن يمكن حلّها.
الأداء من السهل التعامل مع هذا النظام لأنّه منفصل، ولكنه يكرّر الجهود المبذولة لتحسين الأداء. يعتمد ذلك على الصفحة والميزة، ولكن تتجاوز نتيجة PageSpeedInsights في redBus 80.
تطوير فرق مطوّرين منفصلة تقليل الوقت بنسبة تتراوح بين %30 و% 40

Tokopedia

تحتوي صفحات تفاصيل المنتجات في Tokopedia على علامات تبويب متعددة للمتجر ومعلومات العميل. في السابق، كان تنسيق هذه الصفحة مقسمًا إلى ثلاثة أعمدة، وكان اسم المنتج أحيانًا يظهر مقطوعًا على يمين الشاشة في أحجام الشاشة الأصغر حجمًا (راجِع الفيديو "السابق" التالي).

لحلّ مشكلة التنسيق هذه، اعتمدت الشركة طلبات بحث الحاويات بسهولة وسرعة. بعد تنفيذ هذا الإجراء، تمكّنت الشركة من الحصول على تنسيق مرن يظهر فيه اسم المنتج بالكامل في كل الأوقات (راجِع الفيديو التالي "بعد").

قبل

قبل تنفيذ طلبات البحث عن الحاويات، يتم اقتطاع الكلمات "ISKU 10 in 1 Obeng satu.." في أعلى يمين الصفحة لتناسب أحجام الشاشات الأصغر.

بعد

يؤدي تنفيذ طلبات البحث عن الحاوية إلى تعديل التصميم مع إبقاء النص ضمن إطار العرض.

الرمز

يبحث الرمز البرمجي التالي عن حجم الحاوية الرئيسية التي تحمل الاسم infowrapper. إذا كان الحد الأقصى لعرض infowrapper هو 360 بكسل، يتم تعديل العناصر الفرعية width وmargin, وpadding.

يؤدي ضبط container-type على inline-size إلى طلب حجم الاتجاه المضمّن للعنصر الرئيسي. في اللغات اللاتينية مثل الإنجليزية، سيكون هذا هو عرض الحاوية الرئيسية، لأنّ النص يتدفق مضمّنًا من اليسار إلى اليمين.

export const styCredibilityContainer = css`
  container-name: infowrapper;
  container-type: inline-size;
`;

export const styBtnShopFollow = css`
  margin-left: auto;
  width: 98px;
  @container infowrapper (max-width: 360px) {
    width: 100%;
    margin-top: 2px;
    margin-bottom: 8px;
    padding-left: 60px;
  }
`;

export const styBottomRow = css`
  margin-top: 4px;
  padding-left: 60px;
  display: flex;
  align-items: center;

  @container infowrapper (max-width: 360px) {
    padding-left: 0px;
  }

  > div {
    text-align: left;
    margin-top: 0 !important;
  }
`;

نقاط يجب مراعاتها عند استخدام طلبات بحث الحاوية

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

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

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

المصادر:

يمكنك الاطّلاع على المقالات الأخرى في هذه السلسلة التي تتناول كيفية استفادة شركات البيع بالتجزئة من استخدام ميزات CSS الجديدة وميزات واجهة المستخدم، مثل الرسوم المتحرّكة التي يتم تشغيلها عند التمرير، والنوافذ المنبثقة، وطلبات حاويات البيانات، وعنصر الاختيار has().