Mohammed Hhhh نشر 31 مارس 2022 أرسل تقرير نشر 31 مارس 2022 (معدل) السلام عليكم ورحمة الله وبركاته لماذا نقوم بأعطاء العنصر الاب position:relative و العنصر الابن نعطيه position:absalute وشكرا تم التعديل في 31 مارس 2022 بواسطة Hassan Hedr توضيح العنوان 2 اقتباس
0 Hassan Hedr نشر 31 مارس 2022 أرسل تقرير نشر 31 مارس 2022 القيمة absolute للخاصية postion في CSS تجعل العنصر يتموضع في مكان ثابت بالنسبة إلى المبدأ، تعمل تلك الخاصية عبر البحث ضمن شجرة DOM عن أقرب عنصر أب يملك الخاصية position: relative ليتمكن من حساب التموضع الحالي للعنصر، عند تطبيقك يدويًا لتلك الخاصية فأنت تحدد العنصر الأب الذي سيتم التموضع بالنسبة له، أي تكون الإحداثيات التالية تساوي مكان العنصر الأب صاحب القيمة relative top:0; left:0; يمكنك الاستفادة من قراءة المقال التالي: اقتباس
2 سامح أشرف نشر 31 مارس 2022 أرسل تقرير نشر 31 مارس 2022 الخاصية position: relative تقوم بالسماح لك بتحربك العنصر نسبةً لموضوعه الأصلي، فتخيل أن لدينا الكود التالي: <style> .container { background-color: pink; width: 700px; height: 500px; margin: auto; /* لتوسيط الحاوية أفقيًا */ } .box { width: 150px; height: 150px; color: white; text-align: center; display: inline-block; /* لجعل الصناديق بجانب بعضها البعض */ } /* تغير ألوان الصناديق */ .red { background-color: red; } .green { background-color: green; } .blue { background-color: blue; } .black { background-color: black; } </style> <div class="container"> <div class="box red">1</div> <div class="box green">2</div> <div class="box blue">3</div> <div class="box black">4</div> </div> ستكون النتيجة بالشكل التالي: الآن لنحاول تحريك الصندوق الأزرق من خلال الخصائص top و left: .blue { background-color: blue; top: 10px; left: 10px; } ستجد أن الصندوق لم يتحرك من مكانه، وذلك لأن الخصائص top و bottom و left و right لا تعمل إلا إذا قمنا بإضافة الخاصية position إلى العنصر، لنحاول إضافة الخاصية position: relative: .blue { background-color: blue; top: 10px; left: 10px; position: relative; } ستجد أن العنصر تحرك من مكانه الأصلي بنسبة 10px من الأعلى ومن اليسار: لنحاول الآن تغير قيمة الخاصية position لتصبح absolute بدلًا من relative: لاحظ أن العنصر قد تحرك بداية من أول الصفحة (العنصر body) بقيمة 10px من الأعلى top ومن اليسار left، لكن ماذا إذا أردنا أن نحرك العنصر بقيمة 10px من داخل الحاوية container، حينها يجب أن نضيف الخاصية position: relative إلى الحاوية container: .container { background-color: pink; width: 700px; height: 500px; margin: auto; position: relative; } .blue { background-color: blue; top: 10px; left: 10px; position: absolute; } وسنجد حينها أن العنصر بدأ التحرك من بداية الحاوية container: السبب في ذلك هو أن الخاصية position: absolute تجعل العنصر يتحرك من بداية أقرب عنصر أب له يحمل الخاصية position: relative (لاحظ أن الحاوية container هي عنصر أب للصندوق الأزرق، ولها الخاصية position: relative)، وإذا لم يكن هناك أي عنصر أب للصندوق يحمل الخاصية position: relative سوف يبدأ العنصر التحرك من بداية الصفحة. يمكنك الإطلاع على التوثيق الكامل للخاصية position في موسوعة حسوب من هنا. 3 اقتباس
السؤال
Mohammed Hhhh
السلام عليكم ورحمة الله وبركاته
لماذا نقوم بأعطاء العنصر الاب position:relative و العنصر الابن نعطيه position:absalute
وشكرا
تم التعديل في بواسطة Hassan Hedrتوضيح العنوان
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.