أساسيات تحديد المواقع (Positioning)
جزء من قسم Styling with CSS في رحلة HTML على Coddy — الدرس 55 من 76.
في CSS، تُعد خاصية تحديد المواقع (positioning) مجموعة من الخصائص التي تسمح لك بالتحكم في موضع العناصر على صفحة الويب. بشكل افتراضي، يتم وضع العناصر وفقاً للتدفق الطبيعي لمستند HTML. ومع ذلك، باستخدام خاصية تحديد المواقع في CSS، يمكنك إخراج العناصر من التدفق الطبيعي ووضعها في مواقع محددة بالنسبة للعنصر الحاوي لها أو منفذ العرض (viewport) (المنطقة المرئية من نافذة المتصفح).
هناك عدة قيم لخاصية position، لكل منها سلوكها الخاص:
static: هذه هي القيمة الافتراضية. يتم وضع العنصر وفقاً للتدفق الطبيعي للمستند. الخصائصtopوrightوbottomوleftليس لها أي تأثير.
relative: يتم وضع العنصر بشكل نسبي بالنسبة لموضعه الطبيعي. سيؤدي تعيين خصائصtopوrightوbottomوleftإلى تحريك العنصر بعيداً عن موضعه الطبيعي، ولكنه يظل يشغل مساحة في التدفق الطبيعي.
absolute: يتم إزالة العنصر من التدفق الطبيعي للمستند ويتم وضعه بالنسبة إلى أقرب سلف له تم تحديد موضعه (سلف له خاصية position بقيمة غيرstatic). إذا لم يتم العثور على سلف محدد الموضع، فسيتم وضعه بالنسبة إلى كتلة الاحتواء الأولية (عادةً ما تكون منفذ العرض viewport).
fixed: يتم إزالة العنصر من التدفق الطبيعي ويتم وضعه بالنسبة لمنطقة العرض (viewport). ويبقى ثابتاً في مكانه حتى عند تمرير الصفحة.
إليك الصيغة الأساسية لاستخدام خاصية position:
selector {
position: value;
}value: سلوك التموضع المطلوب (على سبيل المثال،static،relative،absolute،fixed،sticky).
التحدي
سهللقد تم تزويدك بمستند HTML يحتوي على قسم أب (<div>) يضم قسماً ابناً واحداً (<div>). مهمتك هي استخدام خاصية position لتغيير سياق تحديد المواقع للعناصر. اتبع الخطوات أدناه:
- اكتب قاعدة CSS تستهدف عنصر
<div>الذي يحمل الفئةcontainer. قم بتعيين خاصيةpositionالخاصة به إلىrelative. سيجعل هذا العنصر أصلاً محدداً (positioned ancestor) لأبنائه. - اكتب قاعدة CSS تستهدف عنصر
<div>الذي يحمل الفئةbox. قم بتعيين خاصيةpositionالخاصة به إلىabsolute. سيؤدي ذلك إلى إخراجه من التدفق الطبيعي (normal flow) ويسمح لك بوضعه بالنسبة لأقرب أصل محدد له (الـcontainer). - قم بتعيين خاصية
topلعنصر.boxإلى50pxوخاصيةleftإلى100px. سيؤدي ذلك إلى وضع الصندوق على بُعد 50 بكسل من الأعلى و 100 بكسل من يسار أصله المحدد (الـcontainer).
ورقة مرجعية
تتحكم خاصية position في كيفية تموضع العناصر على صفحة الويب:
selector {
position: value;
}قيم التموضع:
static: التموضع الافتراضي في تدفق المستند الطبيعيrelative: يتموضع بالنسبة لموقعه الطبيعي، ولا يزال يشغل مساحة في التدفقabsolute: يُزال من التدفق الطبيعي، ويتموضع بالنسبة لأقرب عنصر سلف (ancestor) له تموضع محددfixed: يُزال من التدفق الطبيعي، ويتموضع بالنسبة لمنطقة العرض (viewport)، ويبقى ثابتاً عند التمرير
استخدم خصائص top، و right، و bottom، و left لضبط التموضع (باستثناء static).
جرّب بنفسك
<html>
<head>
<title>Positioning Basics</title>
<style>
.container {
width: 400px;
height: 300px;
border: 1px solid black;
}
.box {
width: 100px;
height: 100px;
background-color: lightblue;
}
/* Write CSS rules here */
</style>
</head>
<body>
<div class="container">
<div class="box"></div>
</div>
</body>
</html>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Styling with CSS
4أساسيات النصوص
لون النصعائلة الخطحجم الخطسمك الخطمحاذاة النصزخرفة النصتحدي المراجعة رقم 1تحدي المراجعة رقم 27نموذج الصندوق - الجزء الأول
ما هو نموذج الصندوق؟المسافات الداخلية (Padding)الهوامش (Margins)الحدود (Borders)العرض والارتفاعتحدي المراجعة8نموذج الصندوق (Box Model) - الجزء الثاني
تحجيم الصندوق (Box Sizing)حواف العناصر (Border Radius)التدفق الزائد (Overflow)ظل الصندوق (Box Shadow)تحدي المراجعة11تقنيات التخطيط
العناصر من نوع Block مقابل Inlineأساسيات تحديد المواقع (Positioning)تحديد الموقع النسبي (Relative)تحديد الموقع المطلق (Absolute)تحديد الموقع الثابت (Fixed)أساسيات Z-Indexتحدي المراجعة