CSS – موقعیت (Position)

ویژگی CSS position به کنترل موقعیت یک عنصر در صفحه وب کمک می‌کند. ویژگی‌های top، bottom، right و left برای کنترل موقعیت دقیق عنصر در صفحه استفاده می‌شوند. آن‌ها مکان دقیق یک عنصر را نسبت به لبه‌های آن مشخص می‌کنند.

ویژگی position می‌تواند برای ایجاد عناصر شناور، نوار کناری شناور و ویژگی‌های تعاملی دیگر استفاده شود.

مقادیر ممکن:

  • static: عنصر بر اساس جریان پیش‌فرض یا عادی صفحه مکان‌گیری می‌شود. بنابراین اگر مقادیر left/right/top/bottom/z-index را تنظیم کنیم، تأثیری بر روی عنصر نخواهد داشت.
  • relative: موقعیت اصلی عنصر مطابق با جریان عادی صفحه است مانند مقدار static. اما حالا مقادیر left/right/top/bottom/z-index کار خواهند کرد. ویژگی‌های موقعیتی عنصر را از موقعیت اصلی در آن جهت فشار می‌دهد.
  • absolute: عنصر کاملاً از جریان سند حذف می‌شود. سپس نسبت به بلوک محتوایی خود قرار می‌گیرد و لبه‌های آن با استفاده از ویژگی‌های side-offset قرار داده می‌شوند. یک عنصر با موقعیت دقیق ممکن است با سایر عناصر همپوشانی داشته باشد یا با آن‌ها همپوشانی داشته باشد.
  • fixed: موقعیت ثابت عنصر دقیقاً مانند موقعیت مطلق است، به استثنای اینکه بلوک محتوایی عنصر ثابت همیشه پنجره نمایش است. در اینجا عنصر کاملاً از جریان سند حذف می‌شود و موقعیتی نسبت به هیچ بخشی از سند ندارد.
  • sticky: عنصر به بالای شاخه مجاور پوزیشن‌دار خود که دارای “مکانیسم پیمایش” است، چسبیده می‌شود.

اعمال به: همه عناصر.

سینتکس:

position: static | relative | absolute | fixed | sticky;

static Value

وقتی از ویژگی position: static استفاده می‌شود، عنصر به طور عادی در جریان سند قرار می‌گیرد. ویژگی‌های left، right، top، bottom و z-index بر روی عنصر تأثیری نخواهند داشت. این مقدار پیش‌فرض است.

<!DOCTYPE html>
<html>
<head>
<style>
   .normal-box {
      display: inline-block;
      background-color: #f2c3ee;
      border: 1px solid #000000;
      padding: 10px;
      margin-bottom: 20px;
      width: 300px;
      height: 100px;
   }
   .static-box {
      display: inline-block;
      position: static;
      background-color: #bbedbb;
      border: 1px solid #000000;
      padding: 10px;
      width: 300px;
      height: 100px;
   }
</style>
</head>
<body>
   <div class="normal-box">
      <h2>Normal Box</h2>
      <p>This is a normal box.</p>
   </div>

   <div class="static-box">
      <h2>Position: static</h2>
      <p>This is a box with static position.</p>
   </div>
</body>
</html>

در این مثال، دو مستطیل نمایش داده شده‌اند. مستطیل اول با کلاس normal-box دارای ویژگی‌های ظاهری است و موقعیتش با استفاده از ویژگی position: static به صورت پیش‌فرض (بدون تغییر) است. در حالی که مستطیل دوم با کلاس static-box دارای همان ویژگی‌های ظاهری است، اما به صورت صریح مقدار position: static را دارد که همان موقعیت پیش‌فرض است و تأثیری بر موقعیت عنصر ندارد.

relative Value

وقتی از خاصیت position: relative استفاده می‌شود، عناصر نسبت به موقعیت اولیه‌شان در صفحه قرار می‌گیرند. می‌توانید از ویژگی‌های left، right، top و bottom برای حرکت دادن عنصر استفاده کنید، اما همچنان فضایی را در جریان سند اشغال می‌کنند.

<!DOCTYPE html>
<html>
<head>
<style>
   .normal-box {
      display: inline-block;
      background-color: #f2c3ee;
      border: 1px solid #000000;
      padding: 10px;
      margin-bottom: 20px;
      width: 300px;
      height: 100px;
   }
   .relative-box {
      display: inline-block;
      position: relative;
      left: 30px;
      background-color: #bbedbb;
      border: 1px solid #000000;
      padding: 10px;
      width: 300px;
      height: 100px;
   }
</style>
</head>
<body>
   <div class="normal-box">
      <h2>Normal Box</h2>
      <p>This is a normal box.</p>
   </div>
   <div class="relative-box">
      <h2>Position: relative</h2>
      <p>This is a box with relative position.</p>
   </div>
</body>
</html>

در این مثال، دو مستطیل نمایش داده شده‌اند. مستطیل اول با کلاس normal-box دارای ویژگی‌های ظاهری است و موقعیتش با استفاده از ویژگی position: static به صورت پیش‌فرض (بدون تغییر) است. در حالی که مستطیل دوم با کلاس relative-box دارای همان ویژگی‌های ظاهری است، اما با استفاده از position: relative، به صورت نسبی نسبت به موقعیت اولیه خود در صفحه قرار می‌گیرد و به اندازه 30 پیکسل به سمت راست منتقل می‌شود.

absolute Value

وقتی از مقدار position: absolute استفاده می‌شود، عنصر از جریان سند خارج شده و نسبت به نزدیک‌ترین پدر موقعیت‌دار خود (در صورت وجود) موقعیت‌بندی می‌شود. اگر هیچ پدر موقعیت‌داری وجود نداشته باشد، عنصر نسبت به نمایشگر موقعیت‌بندی می‌شود.

می‌توانید از ویژگی‌های top، right، bottom و left برای مشخص کردن موقعیت عنصر نسبت به بلوک محتوایی‌اش استفاده کنید.

<!DOCTYPE html>
<html>
<head>
<style>
   .normal-box {
      background-color: #f2c3ee;
      border: 1px solid #333;
      padding: 10px;
      margin-bottom: 20px;
      width: 350px;
      height: 100px;
   }
   .absolute-box {
      background-color: #bbedbb;
      border: 1px solid #333;
      padding: 10px;
      position: absolute;
      width: 300px;
      height: 100px;
      left: 20px;
      bottom: 20px;
   }
</style>
</head>
<body>
   <div class="normal-box">
      <h2>Normal Box</h2>
      <p>This is a Normal box.</p>
      <div class="absolute-box">
         <h2>Position: Absolute</h2>
         <p>This is a box with absolute position.</p>
      </div>
   </div>
</body>
</html>

در این مثال، یک مستطیل نرمال با کلاس normal-box ایجاد شده است که موقعیتش به صورت معمولی در جریان سند است. درون این مستطیل، یک مستطیل دیگر با کلاس absolute-box قرار دارد که با استفاده از position: absolute از جریان سند خارج شده و نسبت به مستطیل پدرش (که موقعیت‌دار است) موقعیت‌بندی شده است. با استفاده از ویژگی‌های left و bottom، موقعیت این مستطیل نسبت به مستطیل پدرش تعیین شده است.

fixed Value

وقتی از مقدار position: fixed استفاده می‌شود، عنصر در همان مکان روی صفحه باقی می‌ماند حتی زمانی که کاربر صفحه را اسکرول می‌کند. سپس می‌توانید از ویژگی‌های left، right، top و bottom برای قرار دادن عنصر در مکان مورد نظر استفاده کنید.

<!DOCTYPE html>
<html>
<head>
<style>
   .position_container {
      width: 400px;
      height: 200px;
      background-color: #f2c3ee;
      overflow: auto;
      padding: 5px;
   }
   .fixed-position {
      position: fixed;
      top: 15px;
      left: 60px;
      padding: 5px;
      background-color: #bbedbb;
      text-align: center;
   }
</style>
</head>
<body>
   <div class="position_container">
      <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
      "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
      <p class="fixed-position">Tutorialspoint CSS Position Fixed</p>
      <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
      <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
      <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
   </div>
</body>
</html>

در این مثال، یک مستطیل با کلاس position_container ایجاد شده است که اندازه آن مشخص شده و از حالت اسکرول برخوردار است. درون این مستطیل، یک پاراگراف با کلاس fixed-position و مقدار position: fixed قرار دارد که به صورت ثابت در موقعیت مشخص شده (15 پیکسل از بالا و 60 پیکسل از چپ) نمایش داده می‌شود. حتی زمانی که صفحه اسکرول می‌شود، موقعیت این پاراگراف ثابت باقی می‌ماند و از نوار اسکرول تحت تاثیر نمی‌باشد.

sticky Value

وقتی از مقدار position: sticky استفاده می‌شود، می‌توانید یک عنصری ایجاد کنید که هنگامی که کاربر از صفحه می‌گذرد، به بالای مشاهده‌گر (viewport) متصل می‌شود.

خاصیت position: sticky ترکیبی از خاصیت‌های position: relative و position: fixed است.

<!DOCTYPE html>
<html>
<head>
<style>
   .position_container {
      width: 400px;
      height: 200px;
      background-color: #f2c3ee;
      overflow: auto;
      padding: 5px;
   }
   .sticky-position {
      position: sticky;
      top: 15px;
      padding: 5px;
      background-color: #bbedbb;
      text-align: center;
   }
</style>
</head>
<body>
   <div class="position_container">
      <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
      "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
      <p class="sticky-position">Tutorialspoint CSS Position Sticky</p>
      <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
      <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
      <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
      <p>"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
   </div>
</body>
</html>

در این مثال، محتویات داخل یک مستطیل با کلاس position_container قرار دارد که دارای ابعاد و پس‌زمینه‌ای مشخص است. درون این مستطیل، یک متن با کلاس sticky-position و مقدار position: sticky قرار دارد که هنگامی که کاربر از محتویات مستطیل عبور می‌کند، به بالای مشاهده‌گر متصل می‌شود.

Positioning Text In an Image

در این مثال، از ویژگی position: absolute برای قرار دادن متن در جهت‌های مختلف استفاده شده است. المان‌های متن به انتهای بالا سمت چپ، بالا سمت راست، پایین سمت چپ و پایین سمت راست قرار داده شده‌اند.

<!DOCTYPE html>
<html>
<head>
<style>
   .container {
      position: relative;
      border: 2px solid #ef2c2c;
   }
   .center {
      position: absolute;
      top: 45%;
      width: 100%;
      text-align: center;
   }
   .top-left {
      position: absolute;
      top: 12px;
      left: 30px;
   }
   .top-right {
      position: absolute;
      top: 12px;
      right: 30px;
   }
   .bottom-left {
      position: absolute;
      bottom: 12px;
      left: 30px;
   }
   .bottom-right {
      position: absolute;
      bottom: 12px;
      right: 30px;
   }
   img {
      width: 100%;
      opacity: 0.3;
   }
</style>
</head>
<body>
   <div class="container">
      <img src="images/red-flower.jpg" alt="abc" width="1000px" height="350px">
      <h3 class="center">Text at Centered</h3>
      <h3 class="top-left">Text at Top Left</h3>
      <h3 class="top-right">Text at Top Right</h3>
      <h3 class="bottom-left">Text at Bottom Left</h3>
      <h3 class="bottom-right">Text at Bottom Right</h3>
   </div>
</body>
</html>

در این کد، یک <div> با کلاس container ایجاد شده است که حاوی یک <img> و چند المان <h3> با کلاس‌های مختلف است. با استفاده از position: absolute و تعیین موقعیت top و left یا right، متن در جهت‌های مختلف قرار داده شده است.

Related Properties

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

در ادامه، توضیحاتی کوتاه در مورد هر یک از این ویژگی‌ها آمده است:

  • bottom: از این ویژگی با ویژگی position برای قرار دادن لبه پایینی یک المان استفاده می‌شود.
  • clip: این ویژگی ماسک کلیپ را برای یک المان تعیین می‌کند.
  • left: با استفاده از این ویژگی همراه با ویژگی position می‌توانید لبه چپ یک المان را قرار دهید.
  • overflow: این ویژگی تعیین می‌کند که چگونه محتوای اضافی نمایش داده شود.
  • position: این ویژگی مدل موقعیت‌دهی را برای یک المان تعیین می‌کند.
  • right: با استفاده از این ویژگی همراه با ویژگی position می‌توانید لبه راست یک المان را قرار دهید.
  • top: این ویژگی مدل موقعیت‌دهی را برای یک المان تعیین می‌کند.
  • vertical-align: این ویژگی موقعیت عمودی یک المان را تعیین می‌کند.
  • z-index: این ویژگی لایه رندرینگ برای المان فعلی را تعیین می‌کند.

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

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.