موقعیت دهی در CSS (CSS Position)
«موقعیت دهی (Position)» در CSS نحوه قرارگیری عناصر را نسبت به جریان عادی سند کنترل می کند. با این قابلیت می توانید رفتار پیش فرض را تغییر دهید و عنصر را با ویژگی های top
، right
، bottom
و left
در جای دقیق بچینید.
مبانی موقعیت دهی (position)
ویژگی position یکی از پنج مقدار زیر را می پذیرد: static
(پیش فرض)، relative
، fixed
، absolute
و sticky
. سپس با چهار جهت یادشده، نقطه نهایی عنصر تعیین می شود.
- static: از جریان عادی پیروی می کند و به مقادیر جهت واکنش نشان نمی دهد.
- relative: نسبت به جای معمول خود جابه جا می شود و فضای قبلی را حفظ می کند.
- fixed: نسبت به نمای دید (viewport) ثابت می ماند و با اسکرول حرکت نمی کند.
- absolute: نسبت به نزدیک ترین والد دارای position غیرِ
static
تنظیم می شود. - sticky: بین حالت های
relative
وfixed
بسته به اسکرول سوییچ می کند.
position: static (پیش فرض)
در این حالت عنصر تحت تأثیر top/right/bottom/left
قرار نمی گیرد و همان جا در جریان باقی می ماند.
div.static{ position: static; border:3px solid #73AD21; }
position: relative
عنصر نسبت به موقعیت عادی خود جابه جا می شود و فضای قبلی حفظ می شود.
div.relative{ position: relative; left:30px; border:3px solid #73AD21; }
position: fixed
عنصر نسبت به پنجره مرورگر ثابت است؛ حتی با اسکرول جای آن عوض نمی شود.
div.fixed{ position: fixed; bottom:0; right:0; width:300px; border:3px solid #73AD21; }
position: absolute
اگر والد position
-دار وجود داشته باشد، عنصر نسبت به همان والد جای گذاری می شود؛ در غیر این صورت نسبت به کل صفحه.
.wrapper{ position: relative; width:400px; height:200px; border:3px solid green; }.box{ position: absolute; top:80px; right:0; width:200px; height:100px; border:3px solid red; }
position: sticky
برای کارکرد «چسبنده»، حداقل یکی از مقادیر top/right/bottom/left
را تعیین کنید تا در آستانه اسکرول بچسبد.
div.sticky{ position: sticky; top:0; background-color:green; border:2px solid #4CAF50; }
نکته: برای مدیریت اسکرول افقی و بهبود چیدمان، می توانید از «حداکثر عرض (max-width)» نیز بهره ببرید.
کاربرد موقعیت دهی در سناریوهای رایج
نوارهای اعلان ثابت، برچسب گذاری روی تصاویر با absolute
داخل کانتینرِ relative
و سربرگ های «چسبنده» نمونه های متداول هستند.
.image{ position: relative; }.badge{ position: absolute; top:8px; left:16px; }
برای درک تفاوت نمایش و مخفی سازی عناصر نیز به صفحه نمایش/قابلیت دید مراجعه کنید. همچنین برای لایه بندی روی هم، قدم بعدی شما کار با z-index است.
هشدار: عناصر absolute
و fixed
از جریان خارج می شوند و ممکن است روی محتوا بیفتند؛ پس محدوده و ترتیب لایه ها را کنترل کنید.
منابع برای مطالعه بیشتر درباره موقعیت دهی
راهنمای MDN درباره position را ببینید و جدول مقادیر در W3Schools را مرور کنید. همچنین از این پیوند برای مرور موقعیت دهی استفاده کنید.