القائمة الكاملة

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

هناك خياران مختلفان للاقتصاص في CSS؛ سيساعد text-overflow في كتابة سطور النص بشكل فردي، وستساعدك سمات overflow على التحكّم في تجاوز البيانات في نموذج المربّع.

تجاوز سعة سطر واحد باستخدام text-overflow

استخدِم السمة text-overflow في أي عنصر يحتوي على عقد نصية، مثل فقرة <p>. يحدد كيفية ظهور النص عندما لا يتناسب مع المساحة المتاحة للعنصر. إنّ كل نص HTML المرئي على الصفحة مضمّن في عقد النصوص. لاستخدام text-overflow، تحتاج إلى سطر واحد من النص غير المُلفَّف، لذا عليك أيضًا ضبط overflow على hidden ويجب أن تكون قيمة white-space تمنع اللفّ.

p {
   
text-overflow: ellipsis;
   
overflow: hidden;
   
white-space: nowrap;
}

استخدام سمات "المحتوى الزائد"

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

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

التمرير على المحور الرأسي والأفقي

تتحكّم السمة overflow-y في التجاوز الفعلي على طول المحور الرأسي لإطار عرض الجهاز، وبالتالي يتم الانتقال للأعلى وللأسفل.

تتحكم السمة overflow-x في التجاوز على طول المحور الأفقي لإطار عرض الجهاز، وبالتالي يتم الانتقال لليمين واليسار.

الخصائص المنطقية لاتجاه التمرير

دعم المتصفح

  • Chrome: غير متاح
  • Edge: غير متوافق
  • Firefox: 69.
  • Safari: غير متوافق

المصدر

تضبط السمتان overflow-inline وoverflow-block القائمة الكاملة استنادًا إلى اتجاه المستند ووضع الكتابة.

اختصار overflow

يضبط الاختصار overflow نمطي overflow-x وoverflow-y في سطر واحد:

overflow: hidden scroll;

في حال تحديد كلمتَين رئيسيتين، تنطبق الأولى على overflow-x والثانية على overflow-y. في الحالات الأخرى، يتم استخدام القيمة نفسها في كل من overflow-x وoverflow-y.

القيم

لنلقِ نظرة أقرب على القيم والكلمات الرئيسية المتاحة لمواقع overflow.

overflow: visible (تلقائي)
في حال عدم ضبط السمة، تكون overflow: visible هي القيمة التلقائية للويب. ويضمن ذلك عدم إخفاء المحتوى أبدًا عن غير قصد ويتبع المبادئ الأساسية المتمثلة في "عدم إخفاء المحتوى أبدًا". أو "تنسيقات آمنة للتنسيقات الدقيقة".
overflow: hidden
عندما يتم اقتصاص محتوى overflow: hidden في الاتجاه المحدّد، لا يتم توفير أشرطة تمرير لعرضه.
overflow: scroll
يفعّل overflow: scroll أشرطة التمرير للسماح للمستخدمين بالتمرير خلال المحتوى. ستظهر أشرطة التمرير حتى إذا لم يكن المحتوى يتدفق حاليًا. وهذه طريقة رائعة لتقليل متغيّرات التصميم المستقبلية إذا كان من الممكن تمرير الحاوية في المستقبل استنادًا إلى تغيير الحجم، على سبيل المثال، عند تغيير الحجم، وتجهيز المستخدم بشكل مرئي للمناطق التي يمكن التنقّل فيها.
overflow: clip
كما هو الحال overflow: hidden، يتم تثبيت المحتوى الذي يتضمن overflow: clip في مربّع المساحة المتروكة للعنصر. الفرق بين clip وhidden هو أنّ الكلمة الرئيسية clip تحظر أيضًا كل التمرير، بما في ذلك التمرير الآلي.
overflow: auto
أخيرًا، القيمة الأكثر استخدامًا هي overflow: auto. وهذا يحترم إعدادات المستخدم المفضّلة ويعرض أشرطة التمرير إذا لزم الأمر، إلا أنه يخفيها تلقائيًا ويتحمل مسؤولية الانتقال إلى المستخدم والمتصفّح.

الانتقال للأعلى أو للأسفل

يقدّم العديد من سلوكيات overflow هذه شريط تمرير، ولكن هناك بعض سمات وسلوكيات التمرير المحدّدة التي يمكن أن تساعدك في التحكّم في الانتقال إلى الحاوية الكاملة.

التمرير وإمكانية الوصول

من المهم التأكّد من أنّ المنطقة القابلة للتمرير يمكنها قبول التركيز حتى يتمكن مستخدم لوحة المفاتيح من الانتقال إلى المربّع، ثم استخدام مفاتيح الأسهم للتمرير.

للسماح لمربّع التمرير بقبول التركيز، أضِف tabindex="0"، واسمًا يتضمّن سمة aria-labelledby، وسمة role مناسبة. على سبيل المثال:

<div tabindex="0" role="region" aria-labelledby="id-of-descriptive-text">
    content
</div>

يمكن بعد ذلك استخدام CSS للإشارة إلى أنّه تم التركيز على المربّع، وذلك باستخدام السمة outline لتقديم دليل مرئي على أنّه يمكن الآن التمرير فيه.

في مقالة استخدام CSS لفرض تسهيل الاستخدام، يوضّح "أدريان روزيلي" كيف يمكن أن يساعد CSS في منع حدوث تراجعات في تسهيل الاستخدام. على سبيل المثال، لتفعيل الانتقال للأعلى أو للأسفل فقط وإضافة مؤشر التركيز في حال استخدام السمات الصحيحة. تتيح القواعد التالية إمكانية الانتقال للأعلى أو للأسفل في المربّع إذا كان يتضمّن السمات tabindex وaria-labelledby وrole.

[role][aria-labelledby][tabindex] {
 
overflow: auto;
}

[role][aria-labelledby][tabindex]:focus {
 
outline: .1em solid blue;
}

موضع شريط التمرير ضمن نموذج المربّع

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

شريط تمرير الجذر مقابل التمرير الضمني

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

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

يعرض الفيديو أداة تمرير رأسية تتضمّن سلوك الارتداد وميزات جديدة للتصميم،
مقارنةً بتمرير أداة تمرير ضمنية بدون سلوك تمرير محسّن.

scroll-behavior

دعم المتصفح

  • Chrome: 61.
  • ‫Edge: 79
  • Firefox: 36
  • Safari: الإصدار 15.4.

المصدر

يسمح لك scroll-behavior بتفعيل التمرير إلى العناصر التي يتحكّم فيها المتصفّح. يتيح لك ذلك تحديد كيفية التعامل مع عناصر التنقّل داخل الصفحة، مثل .scrollTo() أو الروابط.

ويعد ذلك مفيدًا بشكل خاص عند استخدامه مع prefers-reduced-motion لتحديد سلوك التمرير استنادًا إلى الإعدادات المفضّلة للمستخدم.

@media (prefers-reduced-motion: no-preference) {
 
.scroll-view {
   
scroll-behavior: auto;
 
}
}

overscroll-behavior

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

  • Chrome: 63.
  • Edge: 18.
  • Firefox: 59.
  • ‫Safari: 16

المصدر

إذا وصلت إلى نهاية نافذة منبثقة، ثم واصلت الانتقال للأعلى أو للأسفل وتحرّكت الصفحة خلف النافذة المنبثقة، هذا يعني أنّه تم ربط الانتقال للأعلى أو للأسفل، أو تم نقله إلى حاوية الانتقال للأعلى أو للأسفل الرئيسية. تتيح لك سمة overscroll-behavior منع تسرّب الانتقال إلى أعلى الصفحة أو أسفلها في حاوية رئيسية (يُعرف ذلك باسم ربط الانتقال إلى أعلى الصفحة أو أسفلها).

التحقّق من فهمك

اختبر معلوماتك عن التجاوز

هل عنصر "تدفّق النص" هو نفسه عنصر "تدفّق العناصر"؟

خطأ
صحيح

تقبل السمة overflow كلمتَين رئيسيتَين، وفي أي محور تنتمي الكلمة الرئيسية الأولى؟

horizontal
فئة

ما المساحة في نموذج المربع التي تستهلكها أشرطة التمرير عند العرض وتضمينه؟

مربّع المحتوى
مربّع الحدود
مربّع الهامش
مربّع المساحة المتروكة

للحفاظ على الزخم الإضافي من الانتقال إلى أعلى أو أسفل في شريط تمرير ضمني متداخل، ما هي السمة التي ستستخدمها؟

scroll-padding
scroll-hint
scroll-behavior
overscroll-effect
overscroll-behavior

الموارد

تجاوز التدفق وفقدان البيانات في CSS من Smashing Magazine