ترازبندی (Align)
تمام روشهای ترازبندی در CSS: وسطچین افقی، عمودی، Flexbox، Grid و تکنیکهای مدرن
ترازبندی در CSS
ترازبندی (Alignment) یکی از چالشبرانگیزترین بخشهای CSS است. روشهای مختلفی برای وسطچین کردن وجود دارد.
۱. وسطچین افقی (Block)
/* برای عناصر block با عرض مشخص */
.center-block {
width: 500px;
margin: 0 auto;
}
۲. وسطچین افقی (Inline)
/* برای متن و عناصر inline */
.parent {
text-align: center;
}
۳. وسطچین با Flexbox ⭐
/* وسطچین کامل — افقی و عمودی */
.flex-center {
display: flex;
justify-content: center; /* افقی */
align-items: center; /* عمودی */
min-height: 100vh;
}
۴. وسطچین با Grid ⭐
/* سادهترین روش */
.grid-center {
display: grid;
place-items: center; /* هم افقی هم عمودی */
min-height: 100vh;
}
۵. وسطچین با Position + Transform
.parent {
position: relative;
}
.child {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
۶. وسطچین عمودی با line-height
/* فقط برای متن تکخطی */
.single-line {
height: 50px;
line-height: 50px; /* برابر با height */
}
Flexbox Alignment
| ویژگی | توضیح | مقدارها |
|---|---|---|
justify-content | محور اصلی (افقی) | flex-start, center, flex-end, space-between, space-around |
align-items | محور متقاطع (عمودی) | stretch, center, flex-start, flex-end |
align-self | تراز یک آیتم | مثل align-items |
gap | فاصله بین آیتمها | 10px |
Grid Alignment
| ویژگی | توضیح |
|---|---|
justify-items | تراز افقی آیتمها |
align-items | تراز عمودی آیتمها |
place-items | خلاصه هر دو |
justify-content | تراز کل گرید |
text-align
| مقدار | توضیح |
|---|---|
left | چپچین |
right | راستچین |
center | وسطچین |
justify | تراز از دو طرف |
vertical-align
فقط برای عناصر inline و table-cell:
img { vertical-align: middle; }
td { vertical-align: top; }
بهترین شیوهها
- برای وسطچین از
display: grid; place-items: center;استفاده کنید — سادهترین margin: 0 autoبرای وسطچین block کلاسیک- از
text-align: centerبرای متن - Flexbox برای کنترل کامل ترازبندی
- برای RTL،
text-align: rightیاstart
نکات مهم
margin: 0 autoفقط با width مشخص کار میکندvertical-alignبرای block کار نمیکند- Flexbox و Grid بهترین روشهای مدرن هستند
place-items: centerدر Grid هم افقی هم عمودی را حل میکند
این مبحث بخشی از دوره آموزش کامل CSS است.