الفرق بين المراجعتين لصفحة: «Bootstrap/pagination»

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:ترقيم الصفحات في إطار العمل Bootstrap}}</noinclude>'
 
لا ملخص تعديل
 
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:ترقيم الصفحات في إطار العمل Bootstrap}}</noinclude>
<noinclude>{{DISPLAYTITLE:ترقيم الصفحات في إطار العمل Bootstrap}}</noinclude>
استخدم مكوِّن التصفّح الذي يقدّمه إطار العمل Bootstrap للدّلالة على وجود سلسلة محتوى مرتبط مُقسَّم على صفحات عدّة.
== نظرة عامّة ==
يستخدم إطار العمل Bootstrap كتلة عريضة من الروابط المرتبطة في ما بينها للإشارة إلى وجود المحتوى على صفحات عدّة، وجعل الروابط سهلة التمييز والتمدّد، مع توفير مساحة نقر مريحة. يُبنَى شريط التصفّح باستخدام عناصر HTML وبالتالي يمكن لقارئات الشاشة قراءة عدد الروابط الموجودة. استخدم العنصُر <code>[[HTML/nav|&lt;nav&gt;]]</code> لتقديم عناصر التصفّح إلى  قارئات الشاشة والتقنيّات المساعدة الأخرى على أنّها عناصر تنقّل.
يُنصَح - علاوة على ذلك - باستخدام الخاصيّة <code>aria-label</code> ضمن العنصُر <code>[[HTML/nav|&lt;nav&gt;]]</code> للدلالة على الغرض من شريط التصفّح الذي يتكوّن عادةً من أكثر من صفحة. إنْ كان شريط التصفّح يُستخدَم - مثلًا - للتنقّل بين مجموعة من نتائج البحث فإنّه يمكن إعطاء القيمة "صفحات نتائج البحث" للخاصيّة <code>aria-label</code>.
<syntaxhighlight lang="html">
<nav aria-label="مثال على صفحات التنقّل">
  <ul class="pagination">
    <li class="page-item"><a class="page-link" href="#">السابق</a></li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item"><a class="page-link" href="#">التالي</a></li>
  </ul>
</nav>
</syntaxhighlight>
== استخدام الأيقونات في شريط التصفّح ==
تأكّد عند استخدام أيقونات أو رموز بدلًا من المحتوى النصيّ في بعضٍ من روابط التصفّح من توفير الدعم لقارئات الشاشة والتقنيّات المساعدة باستخدام الخاصيّات <code>aria-*‎</code>.
<syntaxhighlight lang="html">
<nav aria-label="مثال على صفحات التنقّل">
  <ul class="pagination">
    <li class="page-item">
      <a class="page-link" href="#" aria-label="Previous">
        <span aria-hidden="true">&laquo;</span>
      </a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#" aria-label="Next">
        <span aria-hidden="true">&raquo;</span>
      </a>
    </li>
  </ul>
</nav>
</syntaxhighlight>
== تنشيط روابط الصفحات وتعطيلها ==
يمكن تخصيص روابط التصفّح حسب الحاجة. استخدم الصنف <code>‎.disabled</code> للروابط التي تظهر غير قابلة للنقر والصنف  <code>‎.active</code> للإشارة إلى الصفحة النشطة حاليًّا.
يستخدم الصنف <code>‎.disabled</code> الخاصيّة <code>pointer-events: none</code> ''لمحاولة'' تعطيل وظيفة الرابط من العنصُر <code>[[HTML/a|&lt;a&gt;]]</code>، إلّا أنّ هذه الخاصيّة ليست معياريّة في CSS حتى الآن، ولا تؤثّر على التنقّل باستخدام لوحة المفاتيح. لذا يجب دائمًا إضافة الخاصيّة <code>tabindex="-1"‎</code> إلى الروابط المُعطّلة واستخدام شفرة JavaScript مُخصَّصة لتعطيل وظيفتها.
<syntaxhighlight lang="html">
<nav aria-label="...">
  <ul class="pagination">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">السابق</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item active">
      <a class="page-link" href="#">2 <span class="sr-only">(الحالي)</span></a>
    </li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">التالي</a>
    </li>
  </ul>
</nav>
</syntaxhighlight>
يمكن التخلّي عن الروابط النشطة أو المُعطّلة واستخدام <code>[[HTML/span|&lt;span&gt;]]</code> مكانها، أو عدم استخدام الرابط (<code>[[HTML/a|&lt;a&gt;]]</code>) بالنسبة للسّهم في حالتيْ التالي/السابق لحذف وظيفة الرابط ومنع استقبال المؤشّر باستخدام لوحة المفاتيح مع الإبقاء على التنسيق المرغوب.
<syntaxhighlight lang="html">
<nav aria-label="...">
  <ul class="pagination">
    <li class="page-item disabled">
      <span class="page-link">السابق</span>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item active">
      <span class="page-link">
        2
        <span class="sr-only">(الحالي)</span>
      </span>
    </li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">التالي</a>
    </li>
  </ul>
</nav>
</syntaxhighlight>
== تحديد الأبعاد ==
أضف أحد الصنفيْن <code>‎.pagination-lg</code> (أزرار كبيرة) أو <code>‎.pagination-sm</code> (أزرار صغيرة) للحصول على أحجام إضافيّة لشريط التصفّح.
<syntaxhighlight lang="html">
<nav aria-label="...">
  <ul class="pagination pagination-lg">
    <li class="page-item active" aria-current="page">
      <span class="page-link">
        1
        <span class="sr-only">(current)</span>
      </span>
    </li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
  </ul>
</nav>
</syntaxhighlight>
<syntaxhighlight lang="html">
<nav aria-label="...">
  <ul class="pagination pagination-sm">
    <li class="page-item active" aria-current="page">
      <span class="page-link">
        1
        <span class="sr-only">(current)</span>
      </span>
    </li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
  </ul>
</nav
</syntaxhighlight>
== المحاذاة ==
بدّل محاذاة مكوّنات التصفّح باستخدام [[Bootstrap/flex|أدوات Flexbox]].
<syntaxhighlight lang="html">
<nav aria-label="مثال على صفحات التنقّل">
  <ul class="pagination justify-content-center">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">السابق</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">التالي</a>
    </li>
  </ul>
</nav>
</syntaxhighlight>
<syntaxhighlight lang="html">
<nav aria-label="مثال على صفحات التنقّل">
  <ul class="pagination justify-content-end">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">السابق</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">التالي</a>
    </li>
  </ul>
</nav>
</syntaxhighlight>
== مصادر ==
* [https://getbootstrap.com/docs/4.5/components/pagination/ صفحة Pagination في توثيق Bootstrap].
[[تصنيف:Bootstrap|{{SUBPAGENAME}}]]
[[تصنيف:Bootstrap components|{{SUBPAGENAME}}]]

المراجعة الحالية بتاريخ 06:40، 13 يوليو 2020

استخدم مكوِّن التصفّح الذي يقدّمه إطار العمل Bootstrap للدّلالة على وجود سلسلة محتوى مرتبط مُقسَّم على صفحات عدّة.

نظرة عامّة

يستخدم إطار العمل Bootstrap كتلة عريضة من الروابط المرتبطة في ما بينها للإشارة إلى وجود المحتوى على صفحات عدّة، وجعل الروابط سهلة التمييز والتمدّد، مع توفير مساحة نقر مريحة. يُبنَى شريط التصفّح باستخدام عناصر HTML وبالتالي يمكن لقارئات الشاشة قراءة عدد الروابط الموجودة. استخدم العنصُر <nav> لتقديم عناصر التصفّح إلى قارئات الشاشة والتقنيّات المساعدة الأخرى على أنّها عناصر تنقّل.

يُنصَح - علاوة على ذلك - باستخدام الخاصيّة aria-label ضمن العنصُر <nav> للدلالة على الغرض من شريط التصفّح الذي يتكوّن عادةً من أكثر من صفحة. إنْ كان شريط التصفّح يُستخدَم - مثلًا - للتنقّل بين مجموعة من نتائج البحث فإنّه يمكن إعطاء القيمة "صفحات نتائج البحث" للخاصيّة aria-label.

<nav aria-label="مثال على صفحات التنقّل">
  <ul class="pagination">
    <li class="page-item"><a class="page-link" href="#">السابق</a></li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item"><a class="page-link" href="#">التالي</a></li>
  </ul>
</nav>

استخدام الأيقونات في شريط التصفّح

تأكّد عند استخدام أيقونات أو رموز بدلًا من المحتوى النصيّ في بعضٍ من روابط التصفّح من توفير الدعم لقارئات الشاشة والتقنيّات المساعدة باستخدام الخاصيّات aria-*‎.

<nav aria-label="مثال على صفحات التنقّل">
  <ul class="pagination">
    <li class="page-item">
      <a class="page-link" href="#" aria-label="Previous">
        <span aria-hidden="true">&laquo;</span>
      </a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#" aria-label="Next">
        <span aria-hidden="true">&raquo;</span>
      </a>
    </li>
  </ul>
</nav>

تنشيط روابط الصفحات وتعطيلها

يمكن تخصيص روابط التصفّح حسب الحاجة. استخدم الصنف ‎.disabled للروابط التي تظهر غير قابلة للنقر والصنف ‎.active للإشارة إلى الصفحة النشطة حاليًّا.

يستخدم الصنف ‎.disabled الخاصيّة pointer-events: none لمحاولة تعطيل وظيفة الرابط من العنصُر <a>، إلّا أنّ هذه الخاصيّة ليست معياريّة في CSS حتى الآن، ولا تؤثّر على التنقّل باستخدام لوحة المفاتيح. لذا يجب دائمًا إضافة الخاصيّة tabindex="-1"‎ إلى الروابط المُعطّلة واستخدام شفرة JavaScript مُخصَّصة لتعطيل وظيفتها.

<nav aria-label="...">
  <ul class="pagination">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">السابق</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item active">
      <a class="page-link" href="#">2 <span class="sr-only">(الحالي)</span></a>
    </li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">التالي</a>
    </li>
  </ul>
</nav>

يمكن التخلّي عن الروابط النشطة أو المُعطّلة واستخدام <span> مكانها، أو عدم استخدام الرابط (<a>) بالنسبة للسّهم في حالتيْ التالي/السابق لحذف وظيفة الرابط ومنع استقبال المؤشّر باستخدام لوحة المفاتيح مع الإبقاء على التنسيق المرغوب.

<nav aria-label="...">
  <ul class="pagination">
    <li class="page-item disabled">
      <span class="page-link">السابق</span>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item active">
      <span class="page-link">
        2
        <span class="sr-only">(الحالي)</span>
      </span>
    </li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">التالي</a>
    </li>
  </ul>
</nav>

تحديد الأبعاد

أضف أحد الصنفيْن ‎.pagination-lg (أزرار كبيرة) أو ‎.pagination-sm (أزرار صغيرة) للحصول على أحجام إضافيّة لشريط التصفّح.

<nav aria-label="...">
  <ul class="pagination pagination-lg">
    <li class="page-item active" aria-current="page">
      <span class="page-link">
        1
        <span class="sr-only">(current)</span>
      </span>
    </li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
  </ul>
</nav>
<nav aria-label="...">
  <ul class="pagination pagination-sm">
    <li class="page-item active" aria-current="page">
      <span class="page-link">
        1
        <span class="sr-only">(current)</span>
      </span>
    </li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
  </ul>
</nav

المحاذاة

بدّل محاذاة مكوّنات التصفّح باستخدام أدوات Flexbox.

<nav aria-label="مثال على صفحات التنقّل">
  <ul class="pagination justify-content-center">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">السابق</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">التالي</a>
    </li>
  </ul>
</nav>
<nav aria-label="مثال على صفحات التنقّل">
  <ul class="pagination justify-content-end">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">السابق</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">التالي</a>
    </li>
  </ul>
</nav>

مصادر