جلسه ۶۴ – شمارنده ها در CSS

ویژگی Counter در CSS

شمارنده ها
شمارنده ها

شمارنده در CSS چیست؟ منظور از Counter در CSS چیست؟ چگونه در CSS شماره گذاری کنیم؟

شمارنده ها به ما کمک می‌کنن که با دست باز تری عناصر خودمون رو شماره گذاری کنیم و به اون ها یک ترتیب مناسب بدیم.

انواع counter ها در CSS

شماره گذاری عناصر به دو فرم زیر انجام می‌شه:

  • شماره گذاری مستقل
  • شماره گذاری وابسته یا nested counter

هر کدوم از این شماره گذاری ها رو تو این جلسه به شکل مفصل بررسی می‌کنیم.

اما قبل از بررسی هر کدوم از اون ها، نیاز داریم که خاصیت ها و مفاهیم ابتدایی مربوط به شمارنده ها رو بدونیم.

خاصیت شمارنده ها در CSS

شمارنده ها، خاصیت های متعددی دارن که به صورت مختصر تو این بخش توضیحشون می‌دیم.

خاصیت counter-reset

برای ساختن یک شمارنده، قبل از هر کاری، باید اون رو بسازیم و بهش یک اسم اختصاص بدیم.

به سینتکس خاصیت مورد نظر توجه کنین:

نحوه نوشتار شمارنده ها

به بخش های مختلف سینتکس بالا توجه کنین.

  • ما تو نقطه شروع، عددی رو قرار می‌دیم که میخوایم شمارنده، شمارش رو از اون شروع کنه.
  • تو بخش نام دلخواه شمارنده هم، یک اسم کاملا دلخواه قرار میدیم.
  • این خاصیت، باید به عنصر پدر عناصری که قراره شمارش بشن، اختصاص داده بشه.

به کد CSS زیر توجه کنین:

/* --- شمارنده از عدد ۳ شروع می‌کنه --- */
div{
   counter-reset: myCounter 3;
}

/* --- هروقت عدد ننویسیم، شمارنده به صورت خودکار از عدد صفر شروع می‌کنه --- */
div{
   counter-reset: shomarande;
}

/* --- شمارنده از عدد ۱۰- شروع می‌کنه --- */
div{
   counter-reset: c -10;
}

حالا چطور می‌تونیم به شمارنده بفهمونیم که چند تا چند تا بالا بره؟

خاصیت counter-increment

توسط این خاصیت، می‌تونیم به شمارنده خودمون، بفهمونیم که باید چند تا چند تا بالا بره یا “پایین” بیاد؟

به سینتکس و نحوه نوشتارش دقت کنین:

نحوه نوشتار خاصیت counter-increment

به بخش های مختلف سینتکس بالا دقت کنین:

  • تو بخش نام دلخواه شمارنده، همون نامی رو قرار می‌دیم که تو خاصیت counter-reset برای شمارنده خودمون تعریف کردیم.
  • تو بخش مقدار پیشروی، عددی رو قرار می‌دیم که تو هر مرحله پیشروی، با نقطه شروع شمارنده ما جمع می‌شه.
  • این خاصیت رو، برای عناصری تعریف می‌کنیم که می‌خوایم شمارش بشن.

به مثال های زیر دقت کنین:

/* --- شمارنده ۱۰ تا ۱۰ تا بالا می‌ره --- */
img{
   counter-increment: myCounter 10;
}

/* --- اگه مقدار پیشروی اختصاص داده نشه، شمارنده یکی یکی بالا می‌ره. --- */
img{
   counter-increment: shomarande;
}

/* --- شمارنده ۵ تا ۵ تا پایین میاد --- */
img{
   counter-increment: c -5;
}

حالا به بررسی هر کدوم از دو نوع شمارنده می‌پردازیم.

شمارنده های مستقل

شمارنده های مستقل، شمارنده هایی هستن که فقط روی یک رشته از عناصر تاثیر می‌زارن و از تابع ()counter استفاده می‌کنن.

برای درک نحوه استفاده از شمارنده مستقل، مستقیم به مثال رجوع می‌کنیم.

به کد HTML و CSS زیر توجه کنین:

<div>
   <h1>
      Section A
    </h1>
   <h1>
      Section B
   </h1>
   <h1>
      Section C
   </h1>
</div>
div{
   counter-reset: myCounter;
}
h1{
   counter-increment: myCounter 1;
}
h1::before{
   content: counter(myCounter) ".";
}

حالا کد بالا رو با هم قسمت به قسمت در این آموزش طراحی وب سایت ، تحلیل کنیم:

  • کد HTML ما از یک عنصر div تشکیل شده که داخل اون، تعدادی عنصر h1 رو قرار دادیم. به عبارت بهتر، عنصر div پدر محسوب می‌شه و عناصر h1 فرزندان اون هستن.
  • همونطور که تو توضیح خاصیت counter-reset یاد گرفتیم، باید یک نام دلخواه برای شمارندمون انتخاب کنیم. اینجا نام myCounter رو انتخاب کردیم و نقطه شروع، به صورت خودکار عدد صفر تنظیم شده.
  • خاصیت counter-increment رو برای عناصری به کار بردیم که می‌خوایم به ترتیب چیده بشن. نام دلخواه رو ذکر کردیم و مقدار پیشروی رو عدد یک در نظر گرفتیم.
  • حالا برای قرار دادن شمارنده ها قبل از هر عنصر h1 از شبه عنصر before استفاده می‌کنیم. سپس با استفاده از خاصیت content، مقداری که باید قرار داده بشه رو با تابع ()counter مشخص می‌کنیم. حواستون باشه که حتما نام شمارنده رو به عنوان ورودی تابع قرار بدید.
  • مقدار “.” نوشته شده بین شمارنده و محتوا قرار می‌گیره.

اگه جایی از توضیحات مقاله براتون مبهم بود، حتما تو قسمت نظرات بگین تا کمکتون کنیم.

کد های فوق، نتیجه زیر رو به ما می‌دن:

شمارش عناصر مستقل توسط شمارنده

شمارنده های وابسته (nested counters)

شمارنده های وابسته، بر خلاف شمارنده های مستقل، فقط روی یک رشته از عناصر تاثیر نمی‌زارن و می‌تونن چندین رشته‌ی وابسته به هم رو شمارش کنن.

به کد های HTML و CSS زیر توجه کنین:

شمارش عناصر وابسته توسط شمارنده

<ul>
   <li>
      Section A
      <ul>
         <li>Section A.A</li>
         <li>Section A.B</li>
      </ul>
   </li>
   <li>
      Section B
      <ul>
         <li>Section B.A</li>
         <li>Section B.B</li>
         <li>Section B.C</li>
      </ul>
   </li>
   <li>
      Section C
      <ul>
         <li>Section C.A</li>
      </ul>
   </li>
</ul>
ul{
   counter-reset: myCounter;
   list-style: none;
}
li{
   counter-increment: myCounter 1;
   font-size: 1.3em;
}
li::before{
   content:counters(myCounter, ".")".";
}

کد بالا رو، قسمت به قسمت با هم تحلیل کنیم:

  • تو کد های HTML، چند تگ ul رو همراه با فرزندان li اون ها می‌بینیم. با این تفاوت که هر کدوم از تگ های li، فرزندان دیگه ای هم دارن.
  • داخل دو قطعه کد اول CSS، برای شمارندمون اسم، نقطه شروع و مقدار پیشروی تعیین کردیم.
  • داخل قطعه سوم کد CSS، مجددا از شبه عنصر before و خاصیت content برای قرار دادن محتوای شمارنده قبل از هر تگ li استفاده کردیم.
  • تفاوت قطعه کد سوم این مثال با قطعه کد سوم مثال قبل، تو استفاده ما از تابع()counters به جای ()counter هست.
  • برای ورودی اول، کافیه نام شمارنده رو وارد کنین. اما برای ورودی دوم تابع، باید مقداری رو وارد کنید که بین شمارنده های عناصر وابسته شما قرار می‌گیره.

نتیجه کد به صورت زیر مشاهده می‌شه:

مثال شمارنده عناصر وابسته

پایان ترم: یه سوال استک اور فلویی!

[box type=”info” class=”question-from-users” width=””]

استک اور فلو، یک وب سایت پرسش و پاسخ در مورد مشکلات برنامه نویسیه. سوال زیر، یکی از سوالات ذکر شده در این وب سایته.

با توجه به مطالب آموخته شده در این مقاله، انتظار می‌ره که بتونین به برنامه نویس زیر یاری برسونین.

سوال:

این کد های HTML و CSS منه:

<ul class="moving-steps">
<li></li>
<li></li>
<li></li>
</ul>
.moving-steps > li:before {
   background: none repeat scroll 0 0 #8F8888;
   border-radius: 15px;
   color: #FFFFFF;
   counter-increment: headings 1;
   content: counter(headings);
   display: block;
   float: left;
   font-size: 16px;
   font-weight: bold;
   height: 25px;
   line-height: 26px;
   margin-bottom: 0;
   margin-right: 5px;
   text-indent: 8px;
   width: 25px;
}

ولی این تیکه از کدم کار نمی‌کنه:

counter-increment: headings 1;
content: counter(headings);

به نظرتون چیزی رو جا انداختم؟

به ایمیل کسانی که پاسخ درست و کامل رو در نظرات بگن ۱۰ هزارتومان در پنل کاربری آکادمی میزفا حسابشون شارژ میشه. (البته باید در آکادمی میزفا ثبت‌نام کنید تا بتونید از این امتیاز استفاده کنید.)

[/box]

نتیجه گیری

تو این مقاله از آموزش CSS ، مفهوم شمارنده ها در CSS رو با هم بررسی کردیم.

شمارنده ها به دو نوع “مستقل” و “وابسته” تقسیم بندی می‌شدن.

در نوع مستقل، از تابع ()counter و در نوع وابسته، از تابع ()counters استفاده می‌کردیم.

تفاوت بین این دو نوع، تواناییشون در مرتب کردن عناصر تو در تو، و عناصر مستقل بود.

این فصل کوتاه به پایان رسید، امیدوارم که براتون مفید بوده باشه 🙂

اگه نکته، پیشنهاد و انتقادی در رابطه با آموزش‌ها دارین، خیلی خیلی خوشحال می‌شیم که اون رو در بخش دیدگاه‌های پایگاه دانش میزفا ارسال کنین.

مدیر محتوا: علی اسمعیلی

فیلم آموزشی asp.net core 2

نوید معدن نژاد
یک عدد دانشجوی مهندسی مکانیک، که راه رسیدن به رویاهاش رو تو علوم کامپیوتری پیدا می‌کنه و سعی می‌کنه هیچوقت از یادگیری دست نکشه!
آموزش CSS
پایین سرفصل های CSS هست، روی منم کلیک کنی میتونی ببینی.

فیلم آموزشی asp.net core 2

2 نظر

2 پاسخ

  1. ul{
    counter-reset: headings;
    list-style: none;
    }
    li:before {
    background: none repeat scroll 0 0 #8F8888;
    border-radius: 15px;
    color: #FFFFFF;
    counter-increment: headings 1;
    content:counter(headings);
    display: block;
    font-size: 16px;
    font-weight: bold;
    height: 25px;
    line-height: 26px;
    margin-bottom: 0;
    margin-right: 5px;
    text-indent: 8px;
    width: 25px;
    }

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

حداکثر حجم فایل برای آپلود: 1 مگابایت. فایل‌های مجاز برای آپلود: عکس, ویس, ویدیو, ورد یا پی دی اف, فایل متنی, زیپ. شما می‌تونید برای بهتر پرسیدن سوالتون، عکس یا ویس یا حتی فیلم در بخش نظرات میزفا آپلود کنید. برای ضبط ویس می‌تونید از خود واتس آپ استفاده کنید و بعد اینجا آپلود کنید و برای ارسال عکس هم کافی هست اسکرین شات بگیرید. Drop file here

با موفقیت ثبت شد، میزفا از شما برای عضویت در خبرنامه هفتگی تشکر میکند.

عضویت در خبرنامه هفتگی برای دریافت:

  • فیلم و مقاله رایگان سئو
  • آموزش‌های UX ، GA و GTM
  • مقاله های تخصصی ASP.NET Core
  • اطلاع رسانی از محصولات
فیلم آموزشی asp.net core 2
ترک میزفا خوب نیست!
معرفی جامع‌ترین ابزار سئو در ایران
بالای ۱۰ هزار عضو
PHZpZGVvIHdpZHRoPSI2MDAiIGhlaWdodD0iMzUwIiBwb3N0ZXI9Imh0dHBzOi8vbWl6ZmEuY29tL2Jsb2cvd3AtY29udGVudC91cGxvYWRzLzIwMjMvMDUvcG9zdGVyLW1pemZhLXRvb2xzLXZpZGVvLW1pbi5wbmciIGNvbnRyb2xzIHByZWxvYWQ9Im5vbmUiPiANCiAgIDxzb3VyY2Ugc3JjPSJodHRwczovL21pemZhLmNvbS9ibG9nL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDIzLzA1L21pemZhX3Rvb2xzXzcyMHAubXA0IiB0eXBlPSJ2aWRlby9tcDQiPg0KPC92aWRlbz4=