افستهای موقعیتیابی
آشنایی عمیق با top، right، bottom و left و نحوه استفاده از آنها با position
افستهای موقعیتیابی چیستند؟
ویژگیهای top، right، bottom و left موقعیت دقیق یک عنصر positioned را مشخص میکنند.
چهار ویژگی offset
| ویژگی | توضیح | مثال |
|---|---|---|
top | فاصله از لبه بالایی | top: 20px |
right | فاصله از لبه راستی | right: 10px |
bottom | فاصله از لبه پایینی | bottom: 0 |
left | فاصله از لبه چپی | left: 50% |
نکته مهم: فقط با position کار میکنند
این ویژگیها فقط روی عناصری که position غیر از static دارند تأثیر میگذارند:
/* ❌ بیتأثیر — static */
.box {
position: static;
top: 50px; /* هیچ اتفاقی نمیافتد */
}
/* ✅ کار میکند */
.box {
position: relative;
top: 50px; /* ۵۰px پایین میآید */
}
مقادیر offset
| مقدار | توضیح |
|---|---|
auto | خودکار (پیشفرض) |
| عدد + واحد | 20px، 50% |
inherit | از والد به ارث ببرد |
وسطچین کردن با offset
ترکیب absolute و offset برای وسطچین کردن:
/* وسطچین افقی و عمودی */
.center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
پر کردن کامل والد
/* تمام کردن والد */
.overlay {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
/* یا کوتاهتر: inset: 0; */
}
ویژگی inset (مدرن)
/* معادل top/right/bottom/left */
.overlay {
position: absolute;
inset: 0; /* همه صفر */
}
/* با مقدار */
.box {
position: absolute;
inset: 10px 20px; /* عمودی افقی */
}
بهترین شیوهها
- برای وسطچین از
top: 50%وtransformاستفاده کنید - از
insetمدرن به جای چهار ویژگی جداگانه استفاده کنید - در RTL،
leftوrightهمان رفتار را دارند — برعکس نمیشوند - مقدار منفی میتواند عنصر را بیرون از والد ببرد
نکات مهم
- offset فقط روی عناصر positioned کار میکند
top: 0; bottom: 0;عنصر را کش میآورد (اگر height نداشته باشد)- در RTL همچنان
rightراست وleftچپ است insetshorthand مدرن است و همه چهار ویژگی را پوشش میدهد
این مبحث بخشی از دوره آموزش کامل CSS است.