آخر الأخبار

استكشف في مدونة أوعي وشك عالم الابتكار

اكتشف الحلول المتطورة في تطبيقات الأجهزة المحمولة والتكنولوجيا والتعليم وموضوعات بلوجر. كن على اطلاع دائم بمقالات الخبراء والموارد الإبداعية والأدوات القوية لتعزيز مشاريعك الرقمية.

التحكم في تموضع العناصرposition في CSS

تُحدِّد الخاصية z-index ترتيب العناصر ذات الموضع المُحدد (positioned elements) على المحور Z، فعندما تتداخل العناصر تُحدد قيمة هذه الخاصية أيّ العناصر.
التحكم في تموضع العناصرposition في CSS

تأخذ الخاصية position التي تضبط موضع العنصر في الصفحة القيم الموضحة في الجدول التالي والتي سنشرح كل واحدة منها بالتفصيل مع أمثلة.

  1. static تعرض العناصر بنفس ترتيبها كتابتها على ملف HTML.
  2. relative تُحدد موضع العنصر نسبةً لموضِعه الأصلي.
  3. fixed تُحدد موضع العنصر نسبةً لنافذة المتصفح.
  4. absolute تُحدد موضع العنصر نسبةً لأوَّل عنصر ذي موضِع نسبي.
  5. initia تُرجِع القيمة الإبتدائية للخاصية.
  6. inherit ترث قيمة الخاصية من العنصر الأب.
  7. sticky يُعامَل العنصر كما لو أنَّه ذو موضع نسبي relative وبعد تجاوز حد معيّن من التمرير لأسفل فسيُعامَل على أنه ذو موضع ثابت fixed.
  8. unset مزيج بين initial و inherit

الموضِع المُطلق (Absolute position)


عند استخدام الموضع المطلق، يُزال العنصر من البنية التنظيمية للصفحة، ولا يُحجَز له مكانٌ في تخطيطها، وإنما يُحدد موضعه نسبةً إلى أقرب عنصر له موضع نسبي، أو إلى العنصر<body>، ويمكن التحكم في موضعه عبر الخواصtopوrightوbottomوleft.

مثال

.abspos {
 position: absolute;
 top:0px;
 left:500px;}
الموضع الثابت (Fixed position)

عند استخدام الموضع الثابت يُزال العنصر من البنية التنظيمية للصفحة، ولا يُحجَز له مكانٌ في تخطيطها، وإنما يُحدد موضعه نسبةً إلى إطار العرض (viewport)، يمكن التحكم في موضعه عبر الخواصtopوrightوbottomوleft، ومن الاستخدامات الشائعة للموضع الثابت استخدامه لتثبيت العنصر في مكانه عند تمرير الصفحة لأسفل.

مثال

#stickyDiv {
    position: fixed;
    top: 10px;
    left: 10px;
}
الموضع النسبي (Relative position)

يُحدد موضع العنصر بناءً على البنية التنظيمية للصفحة،ويمكن التحكم في إزاحته عن موضعه الأصلي عبر الخواص top و right و bottom و left، ولا تؤثر هذه الإزاحة على مواضع بقية العناصر.

مثال

.relpos {
    position: relative;
   top: 20px;
   left: 30px;
}

الموضع الافتراضي حيث يجب (Static position)


يُحدد موضع العنصر بناءً على البنية التنظيمية للصفحة ولا يكون للخواص top و right و bottom و left و z-index أي أثر عليه.


مثال

.element {
    position: static;   
}
خاصية z-index

تُحدِّد الخاصية z-index ترتيب العناصر ذات الموضع المُحدد (positioned elements) على المحور Z، فعندما تتداخل العناصر تُحدد قيمة هذه الخاصية أيّ العناصر سيظهر فوق بقية العناصر، حيث يظهر العنصر ذو أكبر قيمة للخاصية z-index في الأعلى ويليه العنصر ذو القيمة الأقل مباشرة وهكذا.

مثال

  • اولا HTML
      <div id="div1"></div>
      <div id="div2"></div>
      <div id="div3"></div>
    
  • ثانيا CSS
    
    div {
    
          position: absolute;
    
          height: 200px;
    
          width: 200px;
    
      }
    
    
      div#div1 {
    
          z-index: 1;
    
          left: 0px;
    
          top: 0px;
    
          background-color: blue;
    
      }
    
    
      div#div2 {
    
          z-index: 2;
    
          left: 100px;
    
          top: 100px;
    
          background-color: green;
    
      }
    
    
      div#div3 {
    
          z-index: 3;
    
          left: 50px;
    
          top: 150px;
    
          background-color: red;
    
      }
        

النتيجة

 
التحكم في تموضع العناصرposition في CSS

  
الصيغة العامة لكتابة الخاصية z-index
z-index: [number] | auto;
  1. number عدد صحيح يمثل ترتيب العنصر على المحور Z.
  2. auto تُعطي العنصر نفس ترتيب ابيه على المحور Z.
سياق التراص (Stacking Context)


التحكم في تموضع العناصرposition في CSS

في المثال أدناه، يُنشئ كل عنصر سياق تراص خاص به، وبسبب مواضع العناصر و قيمة الخاصية z-index لهم، يُنشئ سياق التراص بالشكل التالي:


من المهم ملاحظة أن العنصرين DIV #4 و DIV #5 و DIV #6 هم أبناء للعنصر DIV #3 لذلك يُنشأ سياق التراص لهم بالنسبة له، وبعد ذلك ينشأ سياق التراص العام للصفحة.

  • ملف HTML
    <div id="div1">       <h1>Division Element #1</h1>       <code>position: relative;<br/>       z-index: 5;</code>   </div>    <div id="div2">       <h1>Division Element #2</h1>       <code>position: relative;<br/>       z-index: 2;</code>   </div>    <div id="div3">       <div id="div4">GoalKicker.com – CSS Notes for Professionals 210           <h1>Division Element #4</h1>           <code>position: relative;<br/>           z-index: 6;</code>       </div>       <h1>Division Element #3</h1>       <code>position: absolute;<br/>       z-index: 4;</code>       <div id="div5">           <h1>Division Element #5</h1>           <code>position: relative;<br/>           z-index: 1;</code>       </div>       <div id="div6">           <h1>Division Element #6</h1>           <code>position: absolute;<br/>           z-index: 3;</code>       </div>   </div>
  • ملف CSS
    
    <div id="div1">
     
          <h1>Division Element #1</h1>
     
          <code>position: relative;<br/>
     
          z-index: 5;</code>
     
      </div>
     
     
      <div id="div2">
     
          <h1>Division Element #2</h1>
     
          <code>position: relative;<br/>
     
          z-index: 2;</code>
     
      </div>
     
     
      <div id="div3">
     
          <div id="div4">GoalKicker.com – css Notes for Professionals 210
     
              <h1>Division Element #4</h1>
     
              <code>position: relative;<br/>
     
              z-index: 6;</code>
     
          </div>
     
          <h1>Division Element #3</h1>
     
          <code>position: absolute;<br/>
     
          z-index: 4;</code>
     
          <div id="div5">
     
              <h1>Division Element #5</h1>
     
              <code>position: relative;<br/>
     
              z-index: 1;</code>
     
          </div>
     
          <div id="div6">
     
              <h1>Division Element #6</h1>
     
              <code>position: absolute;<br/>
     
              z-index: 3;</code>
     
          </div>
     
      </div>
        

🌟 انتبه عزيزي أعضاء المجتمع! 🌟
نحن متحمسون لمشاركتك في مناقشاتنا الديناميكية. لضمان بيئة محترمة وشاملة للجميع، نطلب تعاونكم مع الإرشادات التالية:
1. احترام الخصوصية: يرجى عدم مشاركة معلومات حساسة أو شخصية في تعليقاتك.
2. انشر الإيجابية: نحن نتمسك بسياسة عدم التسامح مطلقًا مع خطاب الكراهية أو اللغة المسيئة. دعونا نحافظ على محادثاتنا محترمة وودية.
3. اللغة المفضلة: لا تتردد في التعبير عن نفسك باللغة الإنجليزية أو العربية. ستساعدنا هاتان اللغتان في الحفاظ على مناقشة واضحة ومتماسكة.
4. احترام التنوع: لتعزيز جو شامل، نطلب منك بكل احترام تجنب مناقشة المسائل الدينية في تعليقاتك.
تذكر أن مساهماتك قيمة، ونحن نقدر التزامك بجعل مجتمعنا مكانًا ترحيبيًا للجميع. دعونا نواصل التعلم والنمو معًا من خلال المناقشات البناءة والاحترام المتبادل.
شكرًا لكونك جزءًا من مجتمعنا اوعي وشك! 🌟

إرسال تعليق