position Property
ویژگی position
در CSS مشخص می کند که عنصر به چه صورت در صفحه جایگیری کند.
نحوه نگارش
position: static; position: relative; position: absolute; position: fixed; position: sticky;
مقادیر
static
مقدار پیشفرض است. عنصر بر حسب جریان معمول ساختار html موقعیت گیری می کند.
relative
عنصر بر حسب جریان معمول ساختار html موقعیت گیری می کند و سپس با در نظرگرفتن جایگاه خود از آن جدا شده و فاصله می گیرد بدین ترتیب فضای اختصاص داده شده به عنصر حفظ می شود. این فاصله با ویژگیهای top
, right
, bottom
و left
مشخص می شود (مقادیر این ویژگی ها بصورت پیشفرض 0 می باشد ). این فاصله گیری و تغییر موقعیت عناصر دیگر را درگیر نمی کند و آنها در موقعیت خود می مانند.
absolute
عنصر از ساختار معمول html حذف می شود و فضایی برای آن در ساختار html در نظر گرفته نشده و عناصر مجاور بر حسب تقدم جای آن را اشغال می کنند. این عنصر بر حسب نزدیکترین والد موقعیت دهی شده (position دهی شده) موقعیت دهی می شود. موقعیت نهایی این عنصر با ویژگی های top
, right
, bottom
و left
مشخص می شود.
fixed
عنصر از ساختار معمول html حذف می شود و فضایی برای آن در ساختار html در نظر گرفته نشده و عناصر مجاور بر حسب تقدم جای آن را اشغال می کنند. عنصر بر حسب بالاترین بلاک در برگیرنده عناصر در view port (محدوده دید در مرورگر) موقعیت دهی می شود. موقعیت نهایی این عنصر بر حسب ویژگی های top
, right
, bottom
و left
مشخص می شود.
sticky
عنصر بر حسب جریان معمول ساختار html موقعیت گیری می کند و سپس با در نظرگرفتن نزدیکترین والد اسکرول شونده موقعیت دهی می شود. جابجایی عنصر تغییری در موقعیت سایر عناصر ایجاد نمی کند. موقعیت نهایی این عنصر بر حسب ویژگی های top
, right
, bottom
و left
مشخص می شود.
در مثال های زیر نحوه عملکرد این ویژگی را می بینیم:
position relative
html
<div class="box" id="one">One</div> <div class="box" id="two">Two</div> <div class="box" id="three">Three</div> <div class="box" id="four">Four</div>
css
.box { display: inline-block; width: 100px; height: 100px; background: red; color: white; } #two { position: relative; top: 20px; left: 20px; background: blue; }
مشاهده و ویرایش کد در حالت تمام صفحه
position absolute
html
<section class="wrapper"> <div> لورم ایپسوم یا طرحنما (به انگلیسی: Lorem ipsum) به متنی آزمایشی و بیمعنی در صنعت چاپ، صفحهآرایی و طراحی گرافیک گفته میشود. </div> <div> لورم ایپسوم یا طرحنما (به انگلیسی: Lorem ipsum) به متنی آزمایشی و بیمعنی در صنعت چاپ، صفحهآرایی و طراحی گرافیک گفته میشود. </div> <div> لورم ایپسوم یا طرحنما (به انگلیسی: Lorem ipsum) به متنی آزمایشی و بیمعنی در صنعت چاپ، صفحهآرایی و طراحی گرافیک گفته میشود. </div> <div> لورم ایپسوم یا طرحنما (به انگلیسی: Lorem ipsum) به متنی آزمایشی و بیمعنی در صنعت چاپ، صفحهآرایی و طراحی گرافیک گفته میشود. </div> </section>
css
.wrapper { padding: 15px; position: relative; background-color: skyblue; } div { background-color: lime; padding: 10px; border: 2px solid #232323; margin-top: 10px; direction: rtl; } .absolute { background-color: rgba(248, 129, 17, 0.8); color: #ffffff; position: absolute; top: 50px; right: 7px; }
مشاهده و ویرایش کد در حالت تمام صفحه
position fixed
html
<section class="wrapper"> <div> لورم ایپسوم یا طرحنما (به انگلیسی: Lorem ipsum) به متنی آزمایشی و بیمعنی در صنعت چاپ، صفحهآرایی و طراحی گرافیک گفته میشود. طراح گرافیک از این متن به عنوان عنصری از ترکیب بندی برای پر کردن صفحه و ارایه اولیه شکل ظاهری و کلی طرح سفارش گرفته شده استفاده می نماید، تا از نظر گرافیکی نشانگر چگونگی نوع و اندازه فونت و ظاهر متن باشد. معمولا طراحان گرافیک برای صفحهآرایی، نخست از متنهای آزمایشی و بیمعنی استفاده میکنند تا صرفا به مشتری یا صاحب کار خود نشان دهند که صفحه طراحی یا صفحه بندی شده بعد از اینکه متن در آن قرار گیرد چگونه به نظر میرسد و قلمها و اندازهبندیها چگونه در نظر گرفته شدهاست. از آنجایی که طراحان عموما نویسنده متن نیستند و وظیفه رعایت حق تکثیر متون را ندارند و در همان حال کار آنها به نوعی وابسته به متن میباشد آنها با استفاده از محتویات ساختگی، صفحه گرافیکی خود را صفحهآرایی میکنند تا مرحله طراحی و صفحهبندی را به پایان برند. </div> <span>BOX</span> </section>
css
.wrapper { padding: 15px; position: relative; background-color: lightgreen; direction: rtl; font-family: "Segoe UI"; } div { width: 60%; line-height: 25px; } span { padding: 15px; background-color: tomato; position: fixed; top: 50px; left: 50px; }
مشاهده و ویرایش کد در حالت تمام صفحه
position sticky
html
<dl> <div> <dt>A</dt> <dd>Andrew W.K.</dd> <dd>Apparat</dd> <dd>Arcade Fire</dd> <dd>At The Drive-In</dd> <dd>Aziz Ansari</dd> </div> <div> <dt>C</dt> <dd>Chromeo</dd> <dd>Common</dd> <dd>Converge</dd> <dd>Crystal Castles</dd> <dd>Cursive</dd> </div> <div> <dt>E</dt> <dd>Explosions In The Sky</dd> </div> <div> <dt>T</dt> <dd>Ted Leo & The Pharmacists</dd> <dd>T-Pain</dd> <dd>Thrice</dd> <dd>TV On The Radio</dd> <dd>Two Gallants</dd> </div> </dl>
css
* { box-sizing: border-box; } dl > div { background: #FFF; padding: 24px 0 0 0; } dt { background: #B8C1C8; border-bottom: 1px solid #989EA4; border-top: 1px solid #717D85; color: #FFF; font: bold 18px/21px Helvetica, Arial, sans-serif; margin: 0; padding: 2px 0 0 12px; position: -webkit-sticky; position: sticky; top: -1px; } dd { font: bold 20px/45px Helvetica, Arial, sans-serif; margin: 0; padding: 0 0 0 12px; white-space: nowrap; } dd + dd { border-top: 1px solid #CCC; }
مشاهده و ویرایش کد در حالت تمام صفحه
پشتیبانی مرورگرها
تمام مرورگرها از این ویژگی پشتیبانی می کنند.