مرکزی مواد پر جائیں۔ ڈاکس نیویگیشن پر جائیں۔
in English

صفحہ بندی

متعدد صفحات پر متعلقہ مواد کی ایک سیریز کی نشاندہی کرنے کے لیے صفحہ بندی دکھانے کے لیے دستاویزات اور مثالیں۔

جائزہ

ہم اپنے صفحہ بندی کے لیے جڑے ہوئے لنکس کا ایک بڑا بلاک استعمال کرتے ہیں، جس سے لنکس کو کھونا مشکل اور آسانی سے توسیع پذیر ہو جاتا ہے۔ صفحہ بندی فہرست HTML عناصر کے ساتھ بنائی گئی ہے تاکہ اسکرین ریڈرز دستیاب لنکس کی تعداد کا اعلان کر سکیں۔ <nav>اسکرین ریڈرز اور دیگر معاون ٹیکنالوجیز کے لیے نیویگیشن سیکشن کے طور پر شناخت کرنے کے لیے ریپنگ عنصر کا استعمال کریں ۔

اس کے علاوہ، جیسا کہ صفحات میں ممکنہ طور پر اس طرح کے ایک سے زیادہ نیویگیشن حصے ہوتے ہیں، اس لیے مناسب ہے کہ اس کے مقصد کی عکاسی کرنے aria-labelکے لیے وضاحتی فراہم کریں۔ <nav>مثال کے طور پر، اگر صفحہ بندی کا جزو تلاش کے نتائج کے ایک سیٹ کے درمیان نیویگیٹ کرنے کے لیے استعمال کیا جاتا ہے، تو ایک مناسب لیبل ہو سکتا ہے aria-label="Search results pages"۔

<nav aria-label="Page navigation example">
  <ul class="pagination">
    <li class="page-item"><a class="page-link" href="#">Previous</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="#">Next</a></li>
  </ul>
</nav>

شبیہیں کے ساتھ کام کرنا

کچھ صفحہ بندی کے لنکس کے لیے متن کی جگہ کوئی آئیکن یا علامت استعمال کرنا چاہتے ہیں؟ ariaاوصاف کے ساتھ مناسب سکرین ریڈر سپورٹ فراہم کرنا یقینی بنائیں ۔

<nav aria-label="Page navigation example">
  <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کلاس s کی لنک کی فعالیت کو غیر فعال کرنے کی کوششpointer-events: none کرنے کے لیے استعمال کرتی ہے ، وہ CSS پراپرٹی ابھی تک معیاری نہیں ہے اور اس میں کی بورڈ نیویگیشن کا حساب نہیں ہے۔ اس طرح، آپ کو ہمیشہ غیر فعال لنکس کو شامل کرنا چاہیے اور ان کی فعالیت کو مکمل طور پر غیر فعال کرنے کے لیے حسب ضرورت JavaScript استعمال کرنا چاہیے۔<a>tabindex="-1"

<nav aria-label="...">
  <ul class="pagination">
    <li class="page-item disabled">
      <a class="page-link">Previous</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item active" aria-current="page">
      <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="#">Next</a>
    </li>
  </ul>
</nav>

آپ اختیاری طور پر فعال یا غیر فعال اینکرز کو تبدیل کر سکتے ہیں <span>، یا پچھلے/اگلے تیر کے معاملے میں اینکر کو چھوڑ سکتے ہیں، تاکہ کلک کی فعالیت کو ہٹایا جا سکے اور مطلوبہ انداز کو برقرار رکھتے ہوئے کی بورڈ فوکس کو روکا جا سکے۔

<nav aria-label="...">
  <ul class="pagination">
    <li class="page-item disabled">
      <span class="page-link">Previous</span>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item active" aria-current="page">
      <span class="page-link">2</span>
    </li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">Next</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>
    </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>
    </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="Page navigation example">
  <ul class="pagination justify-content-center">
    <li class="page-item disabled">
      <a class="page-link">Previous</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="#">Next</a>
    </li>
  </ul>
</nav>
<nav aria-label="Page navigation example">
  <ul class="pagination justify-content-end">
    <li class="page-item disabled">
      <a class="page-link">Previous</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="#">Next</a>
    </li>
  </ul>
</nav>

سس

متغیرات

$pagination-padding-y:              .375rem;
$pagination-padding-x:              .75rem;
$pagination-padding-y-sm:           .25rem;
$pagination-padding-x-sm:           .5rem;
$pagination-padding-y-lg:           .75rem;
$pagination-padding-x-lg:           1.5rem;

$pagination-color:                  $link-color;
$pagination-bg:                     $white;
$pagination-border-width:           $border-width;
$pagination-border-radius:          $border-radius;
$pagination-margin-start:           -$pagination-border-width;
$pagination-border-color:           $gray-300;

$pagination-focus-color:            $link-hover-color;
$pagination-focus-bg:               $gray-200;
$pagination-focus-box-shadow:       $input-btn-focus-box-shadow;
$pagination-focus-outline:          0;

$pagination-hover-color:            $link-hover-color;
$pagination-hover-bg:               $gray-200;
$pagination-hover-border-color:     $gray-300;

$pagination-active-color:           $component-active-color;
$pagination-active-bg:              $component-active-bg;
$pagination-active-border-color:    $pagination-active-bg;

$pagination-disabled-color:         $gray-600;
$pagination-disabled-bg:            $white;
$pagination-disabled-border-color:  $gray-300;

$pagination-transition:              color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;

$pagination-border-radius-sm:       $border-radius-sm;
$pagination-border-radius-lg:       $border-radius-lg;

مکسنس

@mixin pagination-size($padding-y, $padding-x, $font-size, $border-radius) {
  .page-link {
    padding: $padding-y $padding-x;
    @include font-size($font-size);
  }

  .page-item {
    @if $pagination-margin-start == (-$pagination-border-width) {
      &:first-child {
        .page-link {
          @include border-start-radius($border-radius);
        }
      }

      &:last-child {
        .page-link {
          @include border-end-radius($border-radius);
        }
      }
    } @else {
      //Add border-radius to all pageLinks in case they have left margin
      .page-link {
        @include border-radius($border-radius);
      }
    }
  }
}