فهرست سرفصل‌های CSS
خانه (Home) CSS مقدمه CSS (Introduction) سینتکس CSS (Syntax) انتخاب گرهای CSS (Selectors) نحوه استفاده از CSS (How To) کامنت ها در CSS (Comments) ارورها در CSS (Errors) رنگ ها در CSS (Colors) رنگ ها - RGB و RGBA رنگ ها - هگز (HEX Colors) رنگ ها - HSL و HSLA پس زمینه (Backgrounds) پس زمینه - تصویر (Backgrounds Image) پس زمینه - تکرار تصویر (Backgrounds Image Repeat) پس زمینه - پیوست (Background Attachment) پس زمینه - کوتاه نویسی (Background Shorthand) کادرها (Borders) کادرها - عرض (Borders Width) کادرها - رنگ (Borders Color) کادرها - کناره ها (Borders Sides) کادرها - کوتاه نویسی (Shorthand Border Property) کادرها - گرد (Rounded Borders) لایه (Padding) ارتفاع، عرض و حداکثر عرض (Height, Width and Max-width) مدل جعبه ای (Box Model) خط پیرامونی (Outline) خط پیرامونی - ضخامت (Outline Width) خط پیرامونی - رنگ (Outline Color) خط پیرامونی - کوتاه نویسی (Outline Shorthand) خط پیرامونی - آفست (Outline Offset) متن - رنگ (Text Color) متن - چینش (Text Alignment) متن - تزئینات (Text Decoration) متن - تبدیل حروف (Text Transformation) متن - فاصله گذاری (Text Spacing) متن - سایه (Text Shadow) فونت ها (Fonts) فونت های وب سیف (Font Web Safe) فونت - جایگزین ها (Font Fallbacks) فونت - سبک (Font Style) فونت - اندازه (Font Size) فونت - گوگل (Font Google) فونت - کوتاه نویسی (Font Shorthand) آیکن ها در CSS (CSS Icons) لینک ها در CSS (CSS Links) فهرست ها در CSS (CSS Lists) جدول - کادرها (Table Borders) جدول - اندازه (Table Size) جدول - تراز (Table Alignment) جدول - استایل دهی (Table Styling) جدول - واکنش گرا (Table Responsive) نمایش/قابلیت دید (Display) حداکثر عرض (Max-width) موقعیت دهی (Position) شاخص Z (Z-index) سرریز (Overflow) شناوری (Float) شناوری - Float (Clear) شناوری - مثال ها (Float Examples) اینلاین-بلاک (Inline-block) تراز کردن (Align) ترکیب گرها (Combinators) کلاس های شبه (Pseudo-classes) عناصر شبه (Pseudo-elements) شفافیت/اپاسیتی (Opacity) نوار ناوبری - مقدمه (Navbar Intro) نوار ناوبری - عمودی (Vertical Navbar) نوار ناوبری - افقی (Horizontal Navbar) منوهای کشویی (Dropdowns) گالری تصاویر (Image Gallery) اسپرایت های تصویر (Image Sprites) انتخاب گرهای ویژگی (Attribute Selectors) فرم ها (Forms) شمارنده ها (Counters) واحدها (Units) اختصاصیت/اهمیت انتخاب گر (Specificity) !important (!important) توابع ریاضی (Math Functions) بهینه سازی/کارایی (Optimization) دسترس پذیری (Accessibility) چیدمان وب سایت (Website Layout) گوشه های گرد (Rounded Corners) تصاویر کادر (Border Images) پس زمینه - چندگانه (Multiple Backgrounds) پس زمینه - اندازه (Background Size) پس زمینه - مبدأ (Background Origin) پس زمینه - کلیپ (Background Clip) رنگ ها - پیشرفته (Colors - Advanced) کلیدواژه های رنگ (Color Keywords) گرادیان خطی (Linear Gradients) گرادیان شعاعی (Radial Gradients) گرادیان مخروطی (Conic Gradients) افکت های سایه (Shadow Effects) سایه جعبه (Box Shadow)
CSS

CSS — شمارنده ها (Counters)

آخرین بروزرسانی: 1404/07/16

شمارنده های CSS (CSS Counters)

«شمارنده های CSS (CSS Counters)» متغیرهایی هستند که در خود CSS نگه داری می شوند و می توان با قوانین CSS مقدارشان را افزایش یا کاهش داد. بنابراین بدون جاوااسکریپت می توانید برای تیترها، بخش ها یا آیتم ها شماره گذاری پویا بسازید.

مقدمه شمارنده های CSS

برای کار با شمارنده ها از این ها استفاده می کنیم:

  • counter-reset — ایجاد یا ریست شمارنده
  • counter-increment — افزایش/کاهش شمارنده
  • content — درج محتوای تولیدی در ::before و ::after
  • counter() و counters() — نمایش مقدار شمارنده

نکته: پیش از استفاده، شمارنده باید با counter-reset ساخته شود.

شماره گذاری خودکار با شمارنده ها

در نمونه زیر یک شمارنده می سازیم و هنگام رندر هر <h2> آن را افزایش می دهیم و به ابتدای تیتر اضافه می کنیم:

body { counter-reset: section; }
h2::before { counter-increment: section; content: "Section " counter(section) ": "; }

پارامتر دوم counter-increment مقدار گام را تعیین می کند. می توانید کم یا زیاد کنید.

کاهش یا افزایش سفارشی

نسخه کاهشی و افزایشی با گام 2:

/* کاهش یکی یکی */
body { counter-reset: section; }
h2::before { counter-increment: section -1; content: "Section " counter(section) ": "; }
/* افزایش با گام دو */
body { counter-reset: section; }
h2::before { counter-increment: section 2; content: "Section " counter(section) ": "; }

به کارگیری دو شمارنده

در این مثال برای <h1> شمارنده «بخش» و برای <h2> شمارنده «زیر بخش» داریم و خروجی مانند «Section 1.» و «1.1» خواهد بود:

body { counter-reset: section; }
h1 { counter-reset: subsection; }
h1::before { counter-increment: section; content: "Section " counter(section) ". "; }
h2::before { counter-increment: subsection; content: counter(section) "." counter(subsection) " "; }

تابع counters() برای سطوح تو در تو

برای لیست های چندسطحی می توانید با counters() سطوح را با جداکننده نمایش دهید:

ol { counter-reset: section; list-style-type: none; }
li::before { counter-increment: section; content: counters(section, ".") " "; }

هشدار: مقداردهی و نمایش شمارنده ها فقط در محتوای تولیدی با content (در ::before/::after) عمل می کند؛ آن را روی خود عنصر متنی قرار ندهید.

مسیرهای مرتبط

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

برای مطالعه مرجع، راهنمای شمارنده های CSS در MDN و مستندات counter-increment را ببینید.