#C کلید ورود به بازار کار

دوره پروژه‌محور #C و ASP.NET Core

C#
C#
مقالات برنامه نویسی
آموزش Padding در CSS
مقایسه کارت بدون Padding و کارت دارای فاصله داخلی در CSS

اگر متن یک دکمه به لبه‌هاش چسبیده یا نوشته‌های یک کارت خیلی فشرده شده، احتمالاً باید Padding در CSS رو تنظیم کنی. Padding به محتوای داخل یک کادر فضای نفس‌کشیدن می‌ده.

این دو دکمه رو مقایسه کن؛ فقط فاصله داخلی‌شون متفاوته:

تقریباً بدون Paddingثبت‌نام در دورهpadding: 1px 2px;
با Padding مناسبثبت‌نام در دورهpadding: 12px 24px;

اول جای Padding رو در یک جعبه می‌بینی، بعد نحوه نوشتن کدها رو یاد می‌گیری و با ابزار تعاملی خودت نتیجه رو تغییر می‌دی.

Padding در CSS چیست؟

Padding فاصله بین محتوای یک عنصر و خط دور اون (Border) است. مثلاً متن «ثبت‌نام در دوره» محتوای دکمه‌ست. فاصله بین متن و کادر آبی دکمه همون Padding است.

برای شروع فقط این رو به خاطر بسپار: padding: 20px; یعنی در هر چهار طرف محتوا ۲۰ پیکسل فاصله داخلی ایجاد بشه.

Border همون خطی است که دور جعبه کشیده می‌شه. اگر Border رو نمایش ندی، Padding همچنان وجود داره؛ فقط مرزش با چشم مشخص نیست.

Padding در Box Model کجاست؟

مرورگر هر عنصر رو مثل یک جعبه می‌بینه. از وسط به بیرون، این چهار لایه رو داریم: Content یعنی متن یا تصویر، Padding یعنی فاصله داخلی، Border یعنی خط دور جعبه و Margin یعنی فاصله بیرون اون.

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

اگر بخوای این بخش‌ها رو در صفحه خودت ببینی، روی عنصر راست‌کلیک کن، Inspect رو بزن و قسمت Computed / Box Model رو باز کن.

تفاوت Padding و Margin چیه؟

این دو ویژگی هر دو فاصله ایجاد می‌کنن، اما Padding داخل کادر و Margin بیرون کادر قرار می‌گیره.

Padding: فاصله داخل کادر
متن کارت

فضای طلایی بین متن و خط آبی، Padding واقعی کادر است.

Margin: فاصله بیرون کادر
کارت

فضای خاکستری بیرون خط آبی، با margin: 25px; خود کارت ایجاد شده.

کِی کدوم رو بنویسیم؟ برای دورکردن متن از لبه دکمه یا کارت، Padding بده. برای فاصله انداختن بین دو کارت یا جداکردن یک بخش از بخش کناری، معمولاً Margin یا gap مناسبه.

.card { padding: 20px; } /* فاصله متن تا لبه کارت */ .card { margin-bottom: 20px; } /* فاصله بیرونی کارت */

سؤال کوتاه: اگر متن داخل یک دکمه به حاشیه آبی چسبیده باشه، Padding رو تغییر می‌دی یا Margin رو؟ پاسخ: Padding.

چطور Padding رو برای چهار جهت تنظیم کنیم؟

گاهی فقط می‌خوای فاصله یک سمت بیشتر بشه. برای این کار چهار ویژگی جداگانه داریم:

  • padding-top: فاصله داخلی بالا
  • padding-right: فاصله داخلی راست
  • padding-bottom: فاصله داخلی پایین
  • padding-left: فاصله داخلی چپ

در مثال زیر بالا و پایین ۲۰ پیکسل و راست و چپ ۳۰ پیکسل فاصله دارن. رنگ طلایی کمک می‌کنه فاصله رو واضح ببینی.

امتحان کن: کد رو کپی کن و مقدار padding-left: 30px رو به 60px تغییر بده. فقط فاصله سمت چپ بیشتر می‌شه.

چطور Padding رو در یک خط بنویسیم؟

لازم نیست همیشه چهار خط بنویسی. padding یک ویژگی مختصرنویسی (Shorthand) است؛ با یک تا چهار مقدار می‌تونی فاصله‌ها رو مشخص کنی.

برای چهار عدد، همیشه از بالا شروع کن و ساعت‌گرد برو: بالا، راست، پایین، چپ. فارسی یا انگلیسی بودن صفحه این ترتیب رو تغییر نمی‌ده.

ترتیب چهار مقدار Padding به شکل ساعت‌گرد: بالا، راست، پایین، چپ
تعداد عددکدفاصله ایجادشده
یک عددpadding: 20px;هر چهار طرف ۲۰
دو عددpadding: 12px 24px;بالا و پایین ۱۲؛ راست و چپ ۲۴
سه عددpadding: 10px 20px 30px;بالا ۱۰؛ راست و چپ ۲۰؛ پایین ۳۰
چهار عددpadding: 10px 20px 30px 40px;بالا ۱۰؛ راست ۲۰؛ پایین ۳۰؛ چپ ۴۰

تفاوت چهار حالت رو داخل همین کادرهای رنگی هم ببین:

۱ مقدار — همه طرف‌ها یکسان
محتوا
padding: 16px;
۲ مقدار — عمودی و افقی
محتوا
padding: 8px 23px;
۳ مقدار — بالا، طرفین، پایین
محتوا
padding: 8px 16px 25px;
۴ مقدار — ساعت‌گرد
محتوا
padding: 8px 18px 25px 35px;

تمرین: در کلاس .four عدد آخر رو از 40px به 5px تغییر بده؛ می‌بینی فاصله سمت چپ کم می‌شه.

آزمایشگاه تعاملی؛ خودت Padding رو تغییر بده

از اسلایدرها استفاده کن تا فاصله بالا، راست، پایین و چپ محتوای سفید رو تغییر بدی. رنگ طلایی همون Padding است و هم‌زمان کد CSS ساخته می‌شه.

آزمایشگاه تعاملی Padding

پیش‌نمایش زنده — فضای طلایی Padding و خط آبی Border است:

محتوای عنصر
کد HTML و CSS بر اساس مقادیر انتخابی

            

این ابزار فقط مقادیر غیرمنفی رو با واحد px تولید می‌کنه. در ادامه مقاله با واحدهایی مانند rem و درصد نیز آشنا می‌شی. رنگ پس‌زمینه و حاشیه آبی صرفاً برای واضح‌تر شدن پیش‌نمایش هستند.

برای شروع، اسلایدر راست رو تا ۶۰ پیکسل جابه‌جا کن. بعد «کپی کد» رو بزن و خروجی رو در فایلی با پسوند .html ذخیره کن.

آیا Padding اندازه کارت رو بزرگ‌تر می‌کنه؟

بله، بسته به تنظیم box-sizing. فرض کن عرض محتوای یک کارت ۳۰۰ پیکسله. اگر در چپ و راست هرکدوم ۲۰ پیکسل Padding و ۲ پیکسل Border داشته باشه، در حالت content-box عرض بیرونی کارت می‌شه:

300 + 20 + 20 + 2 + 2 = 344px
content-box

عرض ۳۰۰ پیکسل فقط برای محتواست؛ Padding و Border به اون اضافه می‌شن.

عرض بیرونی: ۳۴۴px
border-box

Padding و Border داخل همون عرض ۳۰۰ پیکسلی حساب می‌شن.

عرض بیرونی: ۳۰۰px

برای طراحی کارت‌هایی با عرض مشخص، معمولاً box-sizing: border-box; انتخاب راحت‌تریه. هر دو حالت رو در خروجی کنار کد مقایسه کن:

امتحان کن: مقدار padding: 20px رو در هر دو کارت به 40px تغییر بده. عرض بیرونی کارت اول بزرگ‌تر می‌شه، ولی کارت دوم همچنان عرض ۳۰۰ پیکسلی داره.

Padding رو با چه واحدهایی می‌تونیم بنویسیم؟

برای شروع، px کافیه. وقتی به فاصله‌های انعطاف‌پذیرتر نیاز داشتی، با این واحدها هم آشنا باش:

واحدمثالمعنی ساده
pxpadding: 20px;۲۰ پیکسل فاصله
rempadding: 1.5rem;۱٫۵ برابر اندازه فونت ریشه صفحه
empadding: 1.5em;۱٫۵ برابر اندازه فونت خود عنصر
%padding: 10%;در حالت معمول افقی، درصدی از عرض بلوک مرجع
مثال درصدی: اگر عرض بلوک مرجع ۴۰۰ پیکسل باشه، padding-top: 10% برابر ۴۰ پیکسل می‌شه؛ نه ۱۰ درصد ارتفاع. برای padding-left هم همین مبنای عرض به کار می‌ره.

اگر اندازه فونت ریشه ۱۶ پیکسل باشه، 1.5rem برابر ۲۴ پیکسل می‌شه. Padding مقدار منفی و auto قبول نمی‌کنه و مقدار اولیه‌اش صفره.

Padding در پروژه واقعی؛ کارت، دکمه و موبایل

حالا یک کارت دوره می‌سازیم. padding: 24px باعث می‌شه عنوان و توضیح کارت به لبه نچسبن. در دکمه هم padding: 12px 24px فضای بیشتری در راست و چپ ایجاد می‌کنه.

تمرین کوتاه: در کلاس .course-card مقدار ۲۴ رو به ۸ تغییر بده و کادر رو با حالت قبلی مقایسه کن.

Padding در سایت‌های فارسی و انگلیسی چه فرقی داره؟

padding-right همیشه سمت راست فیزیکی رو تغییر می‌ده؛ اما padding-inline-start سمت شروع متن رو در نظر می‌گیره: در متن افقی فارسی معمولاً راست و در متن انگلیسی معمولاً چپ.

.item { padding-inline-start: 20px; } /* در rtl سمت راست، در ltr سمت چپ */

برای فاصله در هر دو طرف محور نوشتار می‌تونی padding-inline رو به کار ببری. فعلاً اگر صفحه‌ات فقط فارسیه، استفاده از چهار ویژگی معمولی Padding هم کاملاً قابل فهم و کاربردیه.

Padding روی موبایل چطور تنظیم می‌شه؟

کارت با فاصله داخلی ۳۲ پیکسل ممکنه روی موبایل فضای زیادی بگیره. با یک Media Query می‌تونی فاصله داخلی رو برای نمایشگر کوچک کمتر کنی:

.course-card { padding: 32px; } @media (max-width: 650px) { .course-card { padding: 16px; } }

عرض پنجره مرورگر رو کم کن تا اثر Media Query رو ببینی. این تغییر مربوط به فضای داخلی کارته، نه فاصله اون تا کارت‌های کناری.

اشتباهات رایج موقع استفاده از Padding

کارت از عرض صفحه بیرون زده

وقتی width: 100% داری و در حالت content-box به کارت Padding می‌دی، ممکنه عرض بیرونی از ظرفش بیشتر بشه. اول box-sizing: border-box رو بررسی کن.

مقدار Padding تغییر نمی‌کنه

ممکنه اسم کلاس رو اشتباه نوشته باشی یا یک قانون CSS دیگه مقدارش رو بازنویسی کرده باشه. از Inspect → Computed → Box Model برای دیدن مقدار واقعی استفاده کن.

Padding عمودی span رفتار عجیبی داره

در عنصرهای Inline معمولی، Padding بالا و پایین لزوماً ارتفاع خط رو تغییر نمی‌ده. برای برچسب‌های مستقل، display: inline-block اغلب انتخاب مناسب‌تریه.

دو سؤال کوتاه و پرکاربرد

آیا Padding به فرزند ارث می‌رسه؟ نه، مقدار Padding به‌صورت پیش‌فرض ارث‌بری نمی‌شه.

برای فاصله داخل دکمه Padding بهتره یا Width؟ Padding فاصله دور متن رو حفظ می‌کنه و معمولاً برای دکمه‌هایی با متن متفاوت انعطاف بهتری داره.

تمرین پایانی: خودت یک کارت طراحی کن

کد اولیه رو کپی کن و این سه تغییر رو انجام بده:

  1. برای کارت padding: 24px; بنویس.
  2. برای دکمه padding: 12px 24px; تنظیم کن.
  3. مقدار Padding کارت رو یک بار به ۸ و یک بار به ۴۰ پیکسل تغییر بده و نتیجه رو مقایسه کن.
پاسخ تمرین رو ببین (بعد از اینکه خودت امتحان کردی)

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

جمع‌بندی؛ کِی از Padding استفاده کنیم؟

هر وقت لازم داری محتوای یک عنصر از لبه داخلی خودش فاصله بگیره، از Padding استفاده کن. برای فاصله بیرون کادر از Margin یا gap استفاده می‌شه. چهار جهت رو می‌تونی جداگانه بنویسی یا با padding کوتاه کنی. اگر کارتت بعد از افزودن Padding بزرگ‌تر شد، box-sizing رو بررسی کن.

برای تثبیت یادگیری، بهترین کار اینه که مقدار Padding یک کارت یا دکمه رو چند بار تغییر بدی و خروجی رو هم‌زمان ببینی.

می‌خوای طراحی سایت رو اصولی یاد بگیری؟

اگر با Padding و CSS شروع کردی و می‌خوای HTML، CSS و JavaScript رو در یک مسیر پروژه‌محور یاد بگیری، دوره طراحی سایت تحلیل‌داده می‌تونه قدم بعدیت باشه. کلاس‌ها حضوری و آنلاین زنده‌اند و امکان رفع اشکال مستقیم با مدرس و AnyDesk وجود داره.

مقاله بعدی
آموزش نمایش و قابلیت دیده شدن در CSS
مسیر یادگیری مرتبط
دوره آموزش طراحی سایت
HTML، CSS و JavaScript را در قالب پروژه واقعی یاد بگیرید.
مشاهده دوره مشاوره رایگان
نظرات شما

نظرات خود را ثبت کنید...