كما تعلم، يمكنك تخطيط موقع ويب باستخدام الجداول، وفي هذه الحالة يتم تقسيم الصفحة إلى خلايا. يمكنك أيضًا استخدام الكتل لهذه الأغراض عندما تتكون صفحة موقع الويب من عناصر فردية.
ربما لن أكون مخطئًا إذا قلت إن المشكلة الخطيرة التي يواجهها العديد من مشرفي المواقع المبتدئين هي مهمة وضع الكتل في مكان معين على صفحة الويب.
إحدى الصعوبات الرئيسية عند التخطيط باستخدام الكتل هي تحديد موضع (محاذاة) هذه الكتل نفسها.
قليلا عن الطبقات
أعتقد أن الكثير منكم قد سمع عن شيء مثل الطبقة. وكقاعدة عامة، تُفهم الطبقة على أنها كتلة محددة بواسطة علامة
. في الواقع، كل شيء مختلف قليلاً.
لا توجد طبقات في HTML. إنها مجرد استعارة. عندما نتحدث عن الطبقات، فهي تعني حاوية (عنصر) HTML معينة يمكن وضعها في مكان معين على صفحة الويب.
المفهوم الخاطئ الثاني هو أن الكتلة المحددة بالعلامة فقط هي التي يتم تصنيفها على أنها طبقات
. وهذا أيضا غير صحيح. وقد تشمل هذه أيضًا فقرات (
)، القوائم (
) وعناصر أخرى.
والآن حول
أوه.
كما ذكر أعلاه، يمكنك تعيين موقع أي عنصر HTML. ليست هناك حاجة لاستخدام العلامة دائمًا لهذا الغرض
. كما أن استخدام هذه العلامة لا يلزمك بإعطائها أي موضع على صفحة الويب.
معنى استخدام الكتلة المحددة بواسطة العلامة
يأتي إلى التوحيد. بعد كل شيء، يمكنك وضع عناصر أخرى بداخله (الفقرات والصور وما إلى ذلك). يؤدي هذا إلى إنشاء كتلة كبيرة ذات محتوى متنوع، وهو أمر أسهل بكثير في وضعه على صفحة الويب مقارنة بكل عنصر على حدة.
تحديد موضع العناصر.
هناك أربعة أنواع رئيسية لتحديد المواقع:
1. ثابت 2. مطلق 3. ثابت 4. نسبي)
ثابتة
يستخدم كموقع افتراضي. في هذه الحالة، وجهات نظر المتصفح كود أتش تي أم أل، يقسمها إلى عناصر ويؤلف منها صفحة. والنتيجة هي تسلسل لعدد من العناصر. يتم عرضها بالترتيب الذي تمت الإشارة إليه به في كود html.
تطبيق المعلمات اليسار والأعلى واليمين والأسفللا يؤدي إلى أي نتائج.
يجب أخذ الوضع الثابت في الاعتبار عند استخدام الوضع النسبي.
مطلق
باستخدام تحديد المواقع المطلقة، يتم تحديد إحداثيات الزاوية اليسرى العليا من الكتلة. في هذه الحالة، يتم حساب الإحداثيات بالنسبة لموقع العنصر الأصلي. إذا كان العنصر الأصلي عبارة عن نافذة متصفح، فسيتم محاذاة الكتلة بالنسبة إليه. إذا كان هناك عنصر آخر تقع ضمنه الكتلة، فستحدث المحاذاة بالنسبة لهذا العنصر.
مُثَبَّت
بالفعل من الاسم يصبح من الواضح أنه في في هذه الحالةتم إصلاح العنصر. وهو موجود في مكان محدد على صفحة الويب ولا يتحرك إلى أي مكان. غالبًا ما يتم استخدام هذه المحاذاة للنوافذ المنبثقة، حيث يتم توسيطها ولا تتحرك أثناء تمرير الصفحة.
نسبي
هذا النوع من تحديد المواقع يمكن أن يكون صعبا. اسمها ليس مناسبًا تمامًا. كثير من الناس يخلطون بين الموضع النسبي والمطلق للعناصر. قد يبدو أن المحاذاة مرتبطة بالعنصر الأصلي. وفي حالة تحديد المواقع المطلقة - بالنسبة لنافذة المتصفح. ولكن هذا ليس صحيحا.
من الضروري أن نفهم أن موقع العنصر في هذه الحالة يحدث بالنسبة إلى مكانه في وضع ثابت. وهذا ما ذكر أعلاه.
ببساطة، أنت تطلب من المتصفح أن ينقل عنصرًا بعدد كبير من وحدات البكسل بالنسبة إلى مكان وجوده افتراضيًا.
هناك نقطة صعبة أخرى. ماذا يحدث إذا كان العنصر الأصل لديه تحديد المواقع النسبيةوالعنصر المتداخل فيه مطلق؟ وفي هذه الحالة سيتم حساب إحداثيات العنصر الفرعي بالنسبة للعنصر الأصلي مع مراعاة إزاحته إن وجدت.
لخص.
لذلك، هناك خاصية موضع. يمكن لهذه الخاصية أن تأخذ 4 قيم ثابت ومطلق وثابت ونسبي. الافتراضي هو ثابتة.
عند تحديد إحداثيات لعنصر ما، يجب عليك أيضًا إخبار المتصفح بكيفية حساب تلك الإحداثيات. علينا أن نعطيه نقطة انطلاق.
لا تنس أنه إذا لم يكن هناك ممتلكات موضعلن يتم أخذ الإحداثيات بعين الاعتبار، وستبقى الكتلة قيد التشغيل نفس المكان، في وضعه الساكن.
الآن دعونا نرى كيف يتم تعيين الإحداثيات.
ولهذه الأغراض، يتم استخدام أربعة أنواع من الخصائص:
1. الأعلى 2 اليسار 3. صحيح 4. القاع
قمة- القيمة الموجبة (على سبيل المثال، 20 بكسل) تحرك الكتلة بمقدار 20 بكسل لأسفل. القيمة السالبة (-20 بكسل) تحرك العنصر بمقدار 20 بكسل لأعلى. كل هذا يحدث بالنسبة إلى الزاوية اليسرى العليا.
غادر- التحول إلى اليسار أو اليمين حسب الإشارة. نسبة إلى الزاوية اليسرى العليا.
يمين- التحول إلى اليمين واليسار حسب الإشارة. نسبة إلى الزاوية اليمنى العليا.
قاع- التحول لأعلى أو لأسفل، يعتمد على الإشارة. يحدث بالنسبة إلى الزاوية اليسرى السفلى.
واحدة من الأفضل جوانب CSSهو أن الأنماط تمنحنا القدرة على وضع المحتوى والعناصر على الصفحة بأي طريقة يمكن تخيلها تقريبًا. وهذا يضيف هيكلًا لتصميمنا ويساعد في جعل المحتوى أكثر وضوحًا.
هناك عدد قليل أنواع مختلفةتحديد المواقع في CSS، كل من هذه الأنواع لها نطاقها الخاص. في هذا الفصل، سنلقي نظرة على بعض حالات الاستخدام المختلفة - إنشاء تخطيطات قابلة لإعادة الاستخدام وتحديد موضع العناصر التي يمكن التخلص منها بشكل فريد - ووصف بعض الطرق للقيام بذلك.
تحديد المواقع عن طريق تعويم
إحدى الطرق لوضع العناصر على الصفحة هي من خلال الخاصية float. هذه الخاصية متعددة الاستخدامات ويمكن استخدامها بعدة طرق مختلفة.
بشكل أساسي، تأخذ الخاصية float عنصرًا، وتزيله من التدفق الطبيعي للصفحة، وتضعه على يسار أو يمين العنصر الأصلي. ستلتف جميع العناصر الأخرى الموجودة على الصفحة حول هذا العنصر. على سبيل المثال، سوف تلتف الفقرات حول الصورة إذا كان العنصر تم تعيين الخاصية العائمة.
عند تطبيق الخاصية float على عناصر متعددة في وقت واحد، فإنه يجعل من الممكن إنشاء تخطيط بعناصر عائمة بجوار أو مقابل بعضها البعض، كما هو موضح في تخطيط متعدد الأعمدة.
تأخذ الخاصية float عدة قيم، القيمتان الأكثر شيوعًا هي اليسار واليمين، والتي تسمح للعنصر بالطفو إلى يسار أو يمين العنصر الأصلي.
إمج (تعويم: اليسار؛)
تعويم في الممارسة العملية
لنقم بإنشاء تخطيط عام للصفحة برأس في الأعلى، وعمودين في المنتصف، وتذييل في الأسفل. ومن الناحية المثالية، ينبغي ترميز هذه الصفحة بالعناصر
,
,
......
مظاهرة للتخطيط دون تعويم
وهنا العناصر و
القسم ( تعويم: يسار؛ ) جانبًا ( تعويم: يمين؛ )
كمرجع، يتم وضع العناصر العائمة على طول حافة العنصر الأصلي. إذا لم يكن هناك أصل، فسيتم وضع العنصر العائم على طول حافة الصفحة.
عندما نجعل عنصرًا عائمًا، فإننا نقوم بإزالته من التدفق الطبيعي لمستند HTML. يؤدي هذا إلى أن يصبح العرض الافتراضي لهذا العنصر هو عرض محتواه. في بعض الأحيان، كما هو الحال عندما نقوم بإنشاء أعمدة لتخطيط قابل لإعادة الاستخدام، يكون هذا السلوك غير مرغوب فيه. يمكن إصلاح ذلك عن طريق إضافة خاصية العرض بقيمة ثابتة لكل عمود. بالإضافة إلى ذلك، لمنع العناصر العائمة من ملامسة بعضها البعض، مما يتسبب في بقاء محتوى أحد العناصر بجوار عنصر آخر، يمكننا استخدام خاصية الهامش لتعيين المسافة بين العناصر.
نقوم أدناه بتوسيع المجموعة السابقة من التعليمات البرمجية عن طريق إضافة هامش وعرض لكل عمود لتشكيل النتيجة المرجوة بشكل أفضل.
بالنسبة للعنصر العائم، من المهم أيضًا فهم أنه تمت إزالة العنصر من التدفق الطبيعي للصفحة وأن قيمة العرض الافتراضية للعنصر قد تتغير. تعتمد الخاصية float على قيمة عرض العنصر التي تم تعيينها على الحظر ويمكنها تغيير قيمة العرض الافتراضية للعنصر إذا لم يتم عرضه بالفعل كعنصر كتلة.
على سبيل المثال، عنصر تم تحديد عرضه على أنه مضمن، مثل مضمن ، يتجاهل أي خصائص الارتفاع أو العرض. ومع ذلك، إذا قمت بتحديد تعويم لعنصر مضمّن، فستتغير قيمة العرض إلى كتلة ومن ثم يمكن للعنصر أن يأخذ خصائص الارتفاع أو العرض بالفعل.
عندما نطفو عنصر ما، علينا أن نكون حذرين بشأن كيفية تأثيره على قيمة خاصية العرض.
بالنسبة لعمودين، يمكنك تعيين عمود واحد على اليسار والآخر على اليمين، ولكن بالنسبة للأعمدة المتعددة، سيتعين علينا تغيير نهجنا. لنفترض، على سبيل المثال، أننا نرغب في الحصول على صف من ثلاثة أعمدة بين العناصر و
......
...
...
لترتيب هذه العناصر الثلاثة في صف مكون من ثلاثة أعمدة، يجب علينا تعيين تعويم لجميع العناصر مثل اليسار. نحتاج أيضًا إلى ضبط العرض مع مراعاة الأعمدة الإضافية ووضعها بجانب بعضها البعض.
القسم ( تعويم: يسار؛ الهامش: 0 1.5%؛ العرض: 30%؛ )
لدينا هنا ثلاثة أعمدة، جميعها متساوية في العرض وقيمة الهامش، وتم تعيين float على اليسار.
عرض تخطيطي من ثلاثة أعمدة مع تعويم
مسح وتعويم المحتوى
تم تصميم الخاصية float في الأصل للسماح بتدفق المحتوى حول الصور. يمكن إعطاء الصورة تعويمًا ويتدفق كل المحتوى الموجود حول تلك الصورة حولها بشكل طبيعي. على الرغم من أن هذا يعمل بشكل رائع مع الصور، إلا أن الخاصية float لم يكن المقصود منها حقًا استخدامها لأغراض التخطيط وتحديد المواقع، وبالتالي تأتي مع بعض المخاطر.
أحد هذه المخاطر هو أنه في بعض الأحيان لا تظهر الأنماط المناسبة على عنصر مجاور لعنصر عائم أو هو أصله. عندما يتم تعيين عنصر على أنه عائم، تتم إزالته من التدفق الطبيعي للصفحة، ونتيجة لذلك، يمكن أن تتأثر أنماط العناصر المحيطة بهذا العنصر العائم سلبًا.
غالبًا ما يتم تفسير قيم خصائص الهامش والحشو بشكل غير صحيح، مما يؤدي إلى اندماجها في العنصر العائم. وقد تتأثر خصائص أخرى أيضًا.
خطأ آخر هو أنه في بعض الأحيان يبدأ المحتوى غير المرغوب فيه بالالتفاف حول العنصر العائم. تسمح إزالة عنصر من تدفق المستند لجميع العناصر الموجودة حول العنصر العائم بتجاوزه وشغل أي مساحة متاحة حول العنصر العائم، وهو أمر غير مرغوب فيه غالبًا.
في مثالنا السابق المكون من عمودين، بعد أن أضفنا عددًا عشريًا إلى العناصر و
مظاهرة تخطيط دون المقاصة تعويم
لمنع المحتوى من الالتفاف حول العناصر العائمة، نحتاج إلى مسح العنصر العائم وإعادة الصفحة إلى تدفقها الطبيعي. سننظر في كيفية مسح العوامات ثم نلقي نظرة على محتوياتها.
تطهير العوامات
يتم مسح التعويم باستخدام الخاصية Clear، والتي تأخذ عدة قيم مختلفة: القيم الأكثر استخدامًا هي left و right و كلاهما.
القسم ( واضح: يسار؛ )
تقوم القيمة اليسرى بمسح العوامات اليسرى، بينما تقوم القيمة اليمنى بمسح العوامات اليمنى. ومع ذلك، فإن القيمة على حد سواء ستمسح العوامات اليسرى واليمنى وغالبًا ما تكون الخيار الأكثر مثالية.
وبالعودة إلى مثالنا السابق، إذا استخدمنا الخاصية Clear مع قيمة كليهما في عنصر ما
تذييل الصفحة ( واضح: كلاهما؛ )
مظاهرة تخطيط مع المقاصة تعويم
تعويم المحتوى
بدلاً من مسح التعويم، هناك خيار آخر وهو ضبط المحتويات على تعويم. ستكون النتيجة متماثلة إلى حد كبير، لكن المحتوى العائم يضمن حقًا عرض جميع أنماطنا بشكل صحيح.
لتعيين محتوى عائم، يجب أن تكون العناصر العائمة داخل العنصر الأصلي، وستعمل كحاوية، مما يترك تدفق المستند طبيعيًا تمامًا خارجه. يتم تمثيل التصميم لهذا العنصر الأصلي بواسطة فئة المجموعة، كما هو موضح هنا:
ليس هناك الكثير مما يحدث هنا، ولكن كل ما يفعله CSS بشكل أساسي هو مسح جميع العناصر العائمة داخل عنصر المجموعة وإعادة المستند إلى التدفق الطبيعي.
وبشكل أكثر تحديدًا، تقوم العناصر الزائفة ::before و ::after، كما تمت مناقشتها في الدرس 4، بتوليد العناصر الموجودة أعلى وأسفل العنصر بشكل ديناميكي مع مجموعة الصنف . لا تتضمن هذه العناصر أي محتوى ويتم عرضها كعناصر جدول، على غرار عناصر الكتلة. يقوم العنصر الذي يتم إنشاؤه ديناميكيًا بعد عنصر المجموعة بمسح التعويم الموجود داخل عنصر المجموعة، تمامًا كما حدث من قبل. أخيرًا، يقوم عنصر المجموعة أيضًا بمسح أي عوامات قد تظهر قبله في حالة وجود عدد عشري بقيمة left أو right . يتضمن أيضًا خدعة صغيرة تجعل المتصفحات القديمة تعمل بشكل جيد.
هناك تعليمات برمجية أكثر هنا من مجرد الأمر الواضح: كلا الأمرين، ولكنها يمكن أن تكون مفيدة جدًا.
بالنظر إلى تخطيط صفحتنا المكونة من عمودين، يمكننا أن نلتف و
تُعرف التقنية الموضحة هنا باسم "clearfix" وغالبًا ما يتم مشاهدتها على مواقع أخرى تحمل اسم الفئة Clearfix أو cf. لقد اخترنا استخدام مجموعة أسماء الفئة لأنها تمثل مجموعة من العناصر وتعبر بشكل أفضل عن المحتوى.
عندما يتم تعيين العناصر على شكل عائم، من المهم مراقبة كيفية تأثيرها على تدفق الصفحة والتأكد من إعادة تعيين تدفق الصفحة من خلال المسح أو من خلال المحتوى العائم على النحو المنشود. بخلاف ذلك، فإن تتبع العوامات يمكن أن يسبب الكثير من المتاعب، خاصة على الصفحات التي تحتوي على صفوف متعددة، كل منها يحتوي على أعمدة متعددة.
في الممارسة
دعنا نعود إلى موقع Styles Conference ونحاول إضافة عوامات إلى بعض المحتوى.
أول الأشياء أولاً، قبل تطبيق التعويم على أي عنصر، فلنوفر محتوى لتلك العناصر العائمة عن طريق إضافة Clearfix إلى CSS الخاص بنا. في ملف main.css، أسفل أنماط الشبكة مباشرةً، سنضيف Clearfix أسفل اسم فئة المجموعة، تمامًا كما كان من قبل. /* ============================================================================= ====== الإصلاح الواضح ================================ / .group::before، .group::after ( content: " "؛ العرض: table؛ ) .group::after ( واضح: كلاهما؛ ) .group ( واضح: كلاهما؛ *تكبير/تصغير: 1؛ )
الآن بعد أن أصبح بإمكاننا استخدام التعويم، دعونا نحدده للملف الرئيسي
العنصر الداخلي كما هو اليسار واترك بقية المحتوى الموجود في الرأس يتدفق إلى اليمين.
للقيام بذلك، أضف فئة الشعار إلى العنصر
. بعد ذلك، داخل CSS الخاص بنا، سنضيف قسمًا جديدًا للتصميم للرأس الرئيسي. في هذا القسم سوف نختار العنصر
بينما نحن هنا، دعونا نضيف المزيد من التفاصيل إلى شعارنا. لنبدأ بوضع العنصر أو فاصل أسطر بين الكلمتين "الأنماط" و"المؤتمر" لإجبار نص شعارنا على الظهور على سطرين.
في CSS، سنضيف حدًا على طول الجزء العلوي من شعارنا وبعض الحشوات الرأسية حتى يتمكن الشعار من "التنفس" بحرية.
بشكل مبسط، نريد ضبط المحتوى بحيث يكون عائمًا. الوالد المباشر ل
هو عنصر لذلك سوف نقوم بإضافة فئة المجموعة إليها. سيؤدي هذا إلى تطبيق أنماط Clearfix التي قمنا بتعيينها مسبقًا عليها.
...
عنصر يأخذ شكلا، لذلك دعونا نلقي نظرة على العنصر
على عكس العنصر ومع ذلك، فإننا لن نطبق الفئة مباشرة على العنصر العائم. هذه المرة سنقوم بإضافة فئة إلى أصل العنصر العائم واستخدام فئة فريدة محدد CSSلتحديد عنصر ثم إعطائه تعويمًا.
لنبدأ بإضافة فئة التذييل الأساسي إلى العنصر
الآن بعد أن تم تعيين فئة التذييل الأساسي على العنصر
/* ================================= الطابق السفلي الرئيسي ====== ======================= */ .التذييل الأساسي صغير ( float: left; )
للتحقق - هنا نختار العنصر ، والتي يجب أن تكون داخل عنصر ذو قيمة سمة فئة للتذييل الأساسي، مثل العنصر الخاص بنا
وأخيرًا، سنضيف مساحة صغيرة إلى أعلى وأسفل العنصر.
التذييل الأساسي ( المساحة المتروكة في الأسفل: 44 بكسل؛ المساحة المتروكة في الأعلى: 44 بكسل؛ )
مع الأخذ في الاعتبار كل هذه التغييرات في العناصر و
أرز. 5.01. استخدام عناصر عائمة متعددة و
تحديد المواقع عبر كتلة مضمنة
بالإضافة إلى استخدام التعويم، هناك طريقة أخرى يمكننا من خلالها تحديد موضع المحتوى وهي استخدام خاصية العرض مع قيمة الكتلة المضمنة. تعد طريقة الكتلة المضمنة، كما سنناقشها لاحقًا، مفيدة بشكل أساسي لتخطيط الصفحات أو وضع العناصر في سطر بجوار بعضها البعض.
تذكر أن قيمة الكتلة المضمنة لخاصية العرض تعرض العناصر في سطر وتسمح لها بالحصول على جميع خصائص نموذج الصندوق، بما في ذلك الارتفاع والعرض والحشو والحدود والهامش. يتيح لنا استخدام inline-block الاستفادة الكاملة من نموذج الكتلة دون الحاجة إلى القلق بشأن إزالة أي عوامات.
كتلة مضمنة في الممارسة العملية
دعونا نلقي نظرة على مثالنا المكون من ثلاثة أعمدة من البداية. سنبدأ بحفظ HTML الخاص بنا مثل هذا:
......
...
...
الآن بدلاً من تعويم العناصر الثلاثة لدينا سنقوم بتغيير قيمة العرض الخاصة بهم إلى inline-block، ونغادر خصائص الهامشوالعرض هو نفسه كما كان من قبل. ونتيجة لذلك، سيبدو CSS الخاص بنا كما يلي:
القسم ( العرض: كتلة مضمّنة؛ الهامش: 0 1.5%؛ العرض: 30%؛ )
لسوء الحظ، هذا الرمز وحده لا يكفي للقيام بالخدعة و العنصر الأخيريتم دفعه إلى سطر جديد. تذكر، نظرًا لأن عناصر الكتلة المضمنة تظهر على سطر بجوار بعضها البعض، فإنها تتضمن مسافة واحدة بينها. عند إضافة حجم كل مساحة فردية إلى قيمة العرض والهامش الأفقي لجميع العناصر الموجودة في الصف، يصبح العرض الإجمالي كبيرًا جدًا، مما يؤدي إلى دفع العنصر الأخير للخارج إلى سطر جديد. لعرض كافة العناصر على سطر واحد، يجب عليك إزالة المسافة البيضاء بين كل منهما
.
عرض عناصر الكتلة المضمنة مع المساحة
إزالة المسافة بين عناصر الكتلة المضمنة
هناك عدة طرق لإزالة المسافة بين عناصر الكتلة المضمنة، وبعضها أكثر تعقيدًا من غيرها. سوف نركز على الاثنين الأكثر طرق بسيطة، كل منها يحدث داخل HTML.
الحل الأول هو وضع كل علامة عنصر فتح جديدة على نفس سطر علامة الإغلاق للعنصر السابق . بدلا من استخدام خط جديدلكل عنصر ينتهي بنا الأمر ببدء العناصر الموجودة على نفس السطر. قد يبدو HTML الخاص بنا كما يلي:
...
...
...
...
تضمن كتابة عناصر الكتلة المضمنة بهذه الطريقة عدم وجود مسافة بين هذه العناصر في HTML. ولذلك، لن تظهر المساحة عند عرض الصفحة.
عرض عناصر الكتلة المضمنة بدون مسافات
هناك طريقة أخرى لإزالة المسافة بين عناصر الكتلة المضمنة وهي فتح تعليق HTML مباشرة بعد علامة إغلاق العنصر. ثم أغلق التعليق قبل العلامة الافتتاحية للعنصر التالي مباشرة. يتيح ذلك لعناصر الكتلة المضمنة أن تبدأ وتنتهي على أسطر منفصلة في HTML وسوف "تعلق" على أي مسافة محتملة بين العناصر. سيبدو الكود الناتج كالتالي:
...
...
...
...
لا يعتبر أي من هذه الخيارات مثاليًا، لكنها مفيدة. أنا أميل إلى تفضيل استخدام التعليقات لتنظيم أفضل، ولكن الخيار الذي تختاره يعود إليك تمامًا.
إنشاء تخطيطات قابلة لإعادة الاستخدام
عند إنشاء موقع، من الأفضل دائمًا كتابة أنماط معيارية يمكن إعادة استخدامها في مكان آخر، وتكون التخطيطات القابلة لإعادة الاستخدام في أعلى قائمة التعليمات البرمجية القابلة لإعادة الاستخدام. يمكن إنشاء التخطيطات باستخدام العناصر العائمة أو العناصر المضمنة، ولكن ما الذي يعمل بشكل أفضل ولماذا؟
إن مسألة ما إذا كانت العناصر العائمة أو المضمنة أفضل لبنية الصفحة مفتوحة للنقاش. أسلوبي هو استخدام عناصر الكتلة المضمنة لإنشاء تخطيط شبكة أو صفحة، ثم استخدام العوامات عندما أريد أن يتدفق المحتوى حول العنصر (وهو ما تم تصميم العوامات من أجله عند العمل مع الصور). بشكل عام، أجد أيضًا أن التعامل مع العناصر المضمّنة أسهل.
ومع ذلك، استخدم ما يناسبك. إذا كنت أكثر دراية بأحد الأساليب أكثر من الآخر، فاستخدمه.
هناك مواصفات CSS جديدة قيد التنفيذ - خاصة خصائص المرونة والشبكة - والتي ستساعدك على تحديد أفضل طريقة لتخطيط صفحاتك. راقب هذه الأساليب عندما تبدأ في الظهور.
في الممارسة
مع الفهم الراسخ للتخطيطات القابلة لإعادة الاستخدام، فقد حان الوقت لتنفيذ واحدة على موقع Styles Conference الخاص بنا.
بالنسبة لموقع مؤتمر الأنماط، سنقوم بإنشاء تخطيط من ثلاثة أعمدة باستخدام عناصر الكتلة المضمنة. سنفعل ذلك بحيث نحصل على ثلاثة أعمدة بنفس العرض، أو عمودين مع إجمالي العرض مقسم بينهما على أنه 2/3 لأحدهما و1/3 للآخر.
أولاً، سنقوم بإنشاء فئات تحدد عرض هذه الأعمدة. سوف نسمي هاتين الفئتين col-1-3 للثلث وcol-2-3 للثلثين. في قسم الشبكة في ملف main.css، دعنا نتقدم ونحدد هذه الفئات وعروضها المقابلة.
نريد أن يظهر كلا العمودين كعناصر كتلة مضمّنة. نحن بحاجة أيضا للتأكد من ذلك انحياز عموديلقد تم وضعها في أعلى كل عمود.
لنقم بإنشاء محددين جديدين يشتركان في العرض والمحاذاة الرأسية.
Col-1-3، .col-2-3 ( العرض: كتلة مضمنة؛ محاذاة رأسية: أعلى؛ )
ألق نظرة على CSS مرة أخرى. لقد أنشأنا محددي فئة col-1-3 وcol-2-3 مفصولين بفاصلة. الفاصلة في نهاية المحدد الأول تعني أنه يتبعه محدد آخر. بعد المحدد الثاني يأتي الافتتاح دعامة، والتي تشير إلى أن وصف النمط قد بدأ. باستخدام الفاصلة لفصل المحددات، يمكننا ربط نمط واحد بعدة محددات في نفس الوقت.
نريد وضع بعض المسافة بين الأعمدة للمساعدة في تقسيم المحتوى. يمكن القيام بذلك عن طريق إضافة حشوة أفقية لكل عمود.
يعمل هذا بشكل جيد، ولكن عندما يتم وضع عمودين بجانب بعضهما البعض، فإن عرض المسافة بينهما سيكون ضعف عرض المسافة من الحافة الخارجية. لتحقيق التوازن في ذلك، سنضع جميع الأعمدة في شبكة ونضيف إليها نفس المساحة المتروكة.
دعونا نستخدم فئة الشبكة لتعريف شبكتنا، ثم نعطي نفس الحشو الأفقي للشبكة، وفئات col-1-3، وcol-2-3. مع الفواصل التي تفصل بين المحددات مرة أخرى، يبدو CSS الخاص بنا كما يلي:
الشبكة، .col-1-3، .col-2-3 ( الحشو على اليسار: 15 بكسل؛ الحشو على اليمين: 15 بكسل؛ )
عندما نضع الحشو الأفقي، علينا أن نكون حذرين. تذكر أننا في الدرس الأخير قمنا بإنشاء حاوية بفئة الحاوية لتوسيط كل المحتوى الخاص بنا على الصفحة بعرض 960 بكسل. في الوقت الحالي، إذا أردنا وضع عنصر شبكة داخل عنصر حاوية، فإن الحشو الأفقي الخاص به سوف ينهار معًا ولن تظهر أعمدتنا بشكل متناسب مع عرض بقية الصفحة.
سنقوم بذلك عن طريق تقسيم مجموعة قواعد الحاوية القديمة إلى ما يلي:
الآن سيكون عرض أي عنصر يحتوي على فئة الحاوية أو الشبكة 960 بكسل ويقع في وسط الصفحة. بالإضافة إلى ذلك، احتفظنا بالحشوة الأفقية الموجودة لأي عنصر في فئة الحاوية عن طريق نقلها إلى مجموعة قواعد جديدة منفصلة.
حسنًا، لقد اكتمل الجزء الصعب من إعداد الشبكة. حان الوقت الآن للعمل مع HTML الخاص بنا ومعرفة كيفية عمل هذه الفئات.
سنبدأ بالإعلانات التشويقية على الصفحة الرئيسية، في ملف Index.html، مرتبة في ثلاثة أعمدة. يتم حاليًا تغليف الإعلانات التشويقية بالعنصر مع فئة الحاوية. نريد تغيير فئة الحاوية إلى شبكة حتى نتمكن من البدء في وضع الأعمدة بداخلها.
...
...
...
...
وأخيرًا، نظرًا لأن كل عمود من الأعمدة لدينا عبارة عن عنصر كتلة مضمّن، نحتاج إلى التأكد من إزالة أي مسافة بيضاء بينهما. للقيام بذلك، سنستخدم التعليقات ونضيف بعض الوثائق إلى كل قسم لتنظيم الكود الخاص بنا بشكل أفضل.
...
...
...
وللتحقق من ذلك، تركنا تعليقًا على السطر 3 يحدد قسم "المتحدثون" الذي يليه. في نهاية السطر 7، نفتح التعليق مباشرة بعد علامة الإغلاق. داخل هذا التعليق، في السطر 9، نحدد القسم التالي "الجدول الزمني". ثم أغلق التعليق في بداية السطر 11، قبل علامة الافتتاح مباشرة . تظهر بنية تعليق مماثلة في الأسطر من 13 إلى 17 بين العنصرين ، مباشرة قبل قسم المكان. بشكل عام، قمنا بالتعليق على أي مسافة بيضاء محتملة بين الأعمدة، مع استخدام نفس التعليقات في نفس الوقت لتحديد أقسامنا.
لدينا الآن شبكة مكونة من ثلاثة أعمدة قابلة لإعادة الاستخدام وتدعم تخطيطات مختلفة، باستخدام عرض عمود يبلغ 1/3 و2/3. تحتوي صفحتنا الرئيسية الآن على ثلاثة أعمدة، تفصل بين جميع الإعلانات التشويقية.
أرز. 5.02. تتضمن الصفحة الرئيسية لـ Styles Conference الآن تخطيطًا مكونًا من ثلاثة أعمدة
العرض التوضيحي وكود المصدر
يمكنك أدناه عرض موقع Styles Conference على الويب بحالته الحالية وتنزيله أيضًا مصدرالموقع في الوقت الراهن.
تحديد موضع العنصر الفريد
عاجلاً أم آجلاً، سيرغب الجميع في تحديد موضع العنصر بدقة، لكن العناصر العائمة أو العناصر المضمنة لا تسمح بمثل هذه الخدعة. العناصر العائمة التي تزيل عنصرًا من تدفق الصفحة غالبًا ما تنتج نتائج غير مرغوب فيها لأن العناصر المحيطة تلتف حول العنصر العائم. عناصر الكتلة المضمنة، ما لم نقم بإنشاء أعمدة، يمكن أن تكون صعبة للغاية عندما يتعلق الأمر بالموضع الصحيح. في مثل هذه المواقف، يمكننا استخدام خاصية الموضع مع خصائص إزاحة الكتلة.
تحدد خاصية الموضع كيفية وضع العنصر على الصفحة وما إذا كان سيتم عرضه في التدفق العادي للمستند. يتم استخدامه جنبًا إلى جنب مع خصائص إزاحة الكتلة أعلى، يمين، أسفل، ويسار، والتي تحدد بالضبط مكان وضع العنصر عن طريق تحريك العنصر في اتجاهات مختلفة.
بشكل افتراضي، كل عنصر قيمة الموقفتم تعيينه على static، وهذا يعني أن العنصر موجود في التدفق الطبيعي للمستند ولا يأخذ أي خصائص لمعادلته. غالبًا ما يتم استبدال القيمة الثابتة بالقيمة النسبية أو المطلقة، والتي سننظر إليها لاحقًا.
تحديد المواقع النسبية
يؤدي تعيين خاصية الموضع إلى نسبي إلى السماح للعناصر بالظهور في التدفق الطبيعي للصفحة، مما يؤدي إلى حجز مساحة للعنصر على النحو المقصود ومنع العناصر الأخرى من التدفق حوله. ومع ذلك، فهو يسمح لك أيضًا بتعديل موضع العنصر باستخدام خصائص الإزاحة. على سبيل المثال، خذ بعين الاعتبار HTML وCSS التاليين:
مع فئة الإزاحة، يتم تعيين قيمة الموضع إلى نسبي، بالإضافة إلى خاصيتين للإزاحة - اليسار والأعلى. هذا يحفظ الوضعية الأوليةلا يُسمح للعنصر والعناصر الأخرى بالانتقال إلى هذه المنطقة. بالإضافة إلى ذلك، تقوم خصائص الإزاحة بنقل العنصر عن طريق دفعه بمقدار 20 بكسل من اليسار و20 بكسل من أعلى الموقع الأصلي.
بالنسبة للعناصر ذات الموضع النسبي، من المهم معرفة أن خصائص إزاحة الكتلة تحدد المكان الذي سيتم نقل العنصر إليه، بالنظر إلى موضعه الأصلي. لذا فإن الخاصية اليسرى بقيمة 20 بكسل تدفع العنصر إلى اليمين 20 بكسل. الخاصية العلوية بقيمة 20 بكسل ستدفع العنصر لأسفل بمقدار 20 بكسل.
عندما نضع عنصرًا باستخدام خصائص الإزاحة، فإن العنصر يتداخل مع العنصر الموجود أسفله، بدلاً من دفعه لأسفل كما تفعل خصائص الهامش أو الحشو.
تحديد المواقع المطلقة
تختلف القيمة المطلقة لخاصية الموضع عن القيمة النسبية حيث أن العنصر الذي تم تحديد موضعه بشكل مطلق لا يظهر في التدفق الطبيعي للمستند، ولا يتم حجز المساحة الأصلية وموضع العنصر الذي تم تحديد موضعه بشكل مطلق.
بالإضافة إلى ذلك، تتحرك العناصر ذات الموضع المطلق بالنسبة إلى العنصر الأصلي الأقرب لها والموضع نسبيًا. إذا لم يكن هناك عنصر أصل ذو موضع نسبي، فسيتم وضع العنصر ذو الموضع المطلق بالنسبة للعنصر
. هذه معلومة صغيرة؛ دعونا نلقي نظرة على كيفية عمله داخل بعض التعليمات البرمجية:
...
القسم ( الموضع: نسبي؛ ) div ( الموضع: مطلق؛ اليمين: 20 بكسل؛ الأعلى: 20 بكسل؛ )
مظاهرة تحديد المواقع المطلقة
في هذا المثال العنصر يتم وضعه بالنسبة إلى، ولكنه لا يتضمن أي خصائص إزاحة. ولذلك فإن موقفها لا يتغير. عنصر
مع فئة الإزاحة تتضمن قيمة الموضع على أنها مطلقة. منذ العنصر هو العنصر الأصلي الأقرب إلى موقعه نسبيًا
ثم العنصر
سيتم وضعه بالنسبة للعنصر
.
بالنسبة للعناصر ذات الموضع النسبي، تحدد خصائص الإزاحة الاتجاه الذي سيتم نقل العنصر بالنسبة إليه. بالنسبة للعناصر ذات الموضع المطلق، تحدد خصائص الإزاحة الاتجاه الذي سيتم نقل العنصر إليه بالنسبة إلى العنصر الأصلي الأقرب إليه.
ونتيجة للخصائص اليمنى والعليا، فإن العنصر
سيظهر 20 بكسل من اليمين و 20 بكسل من الأعلى إلى الداخل
.
منذ العنصر
تم وضعه بشكل مطلق، ولا يتم وضعه في التدفق الطبيعي للصفحة وسيتداخل مع أي عناصر محيطة به. وعلاوة على ذلك، موقف البداية
لم يتم حفظه وقد تأخذ عناصر أخرى هذا المكان. بشكل عام، يمكن أن تتم معظم عمليات تحديد المواقع دون استخدام خصائص الموضع وخصائص الإزاحة، ولكن في بعض الحالات يمكن أن تكون مفيدة للغاية.
ملخص
يعد تعلم كيفية وضع المحتوى في HTML وCSS خطوة كبيرة نحو إتقان هذه اللغات. أضف إلى ذلك نموذج الكتلة ونحن في طريقنا لنصبح مطوري الواجهة الأمامية.
تحديد المواقع هو واحد من المفاهيم الرئيسيةفي تخطيط الكتلة. بمجرد أن تفهم ذلك، سوف يصبح الكثير واضحا لك، وسوف يتحول التخطيط من الشامانية إلى عملية ذات معنى. لذلك، سوف تركز هذه المقالة على خصائص CSS. موضعو يطفو.
1. الموقف: ثابت
بشكل افتراضي، تتمتع جميع العناصر الموجودة في الصفحة بموضع ثابت (الموضع: ثابت)، مما يعني أن العنصر لم يتم تحديد موضعه، ويظهر في المستند في مكانه المعتاد، أي بنفس الترتيب كما في ترميز HTML.
ليست هناك حاجة لتعيين هذه الخاصية على وجه التحديد لأي عنصر، إلا إذا كنت بحاجة إلى تغيير الموضع المحدد مسبقًا إلى الوضع الافتراضي.
#المحتوى (الموضع: ثابت؛)
2. الموقف: نسبي
يتيح لك تحديد الموضع النسبي (الموضع: نسبي) استخدام الخصائص العلوية والسفلية واليسار واليمين لوضع عنصر بالنسبة إلى المكان الذي سيظهر فيه إذا تم وضعه بشكل طبيعي.
لاحظ أنه توجد الآن مساحة فارغة حيث كان من المفترض أن تكون كتلة #المحتوى الخاصة بنا. بعد كتلة #المحتوى، لم تتحرك كتلة #التذييل لأسفل لأن #المحتوى لا يزال يحتل مكانه في المستند على الرغم من أننا قمنا بنقله.
على في هذه المرحلةقد يبدو أن الموضع النسبي ليس مفيدًا، لكن لا تتسرع في الاستنتاجات، لاحقًا في المقالة ستتعرف على ما يمكن استخدامه من أجله.
3. الموضع: مطلق
باستخدام الموضع المطلق (الموضع: مطلق)، تتم إزالة العنصر من المستند ويظهر في المكان الذي تطلبه منه.
دعنا، على سبيل المثال، ننقل الكتلة #div-1a إلى الزاوية اليمنى العليا من الصفحة:
لاحظ أنه هذه المرة، نظرًا لإزالة الكتلة #div-1a من المستند، تم وضع العناصر المتبقية في الصفحة بشكل مختلف: تم نقل #div-1b و#div-1c و #footer إلى الأعلى، بدلاً من الكتلة التي تمت إزالتها . وتقع الكتلة #div-1a نفسها على اليمين تمامًا، الزاوية العلياالصفحات.
بهذه الطريقة يمكننا وضع أي عنصر بالنسبة للصفحة، ولكن هذا لا يكفي. في الواقع، نحن بحاجة إلى تحديد موضع #div-1a بالنسبة إلى كتلة المحتوى #الأصلية. وعند هذه النقطة، يأتي تحديد المواقع النسبية في الاعتبار مرة أخرى.
4. الموضع: ثابت
الموضع الثابت (الموضع: ثابت) هو قسم فرعي من الموضع المطلق. والفرق الوحيد هو أنه موجود دائمًا في المنطقة المرئية من الشاشة ولا يتحرك أثناء تمرير الصفحة. في هذا الصدد، فهي تشبه إلى حد ما صورة خلفية ثابتة.
في IE مع الموضع: ثابت، ليس كل شيء سلسًا كما نرغب، ولكنه موجود طرق عديدةتجاوز هذه القيود.
5. الموضع: نسبي + الموضع: مطلق
من خلال تعيين موضع نسبي لكتلة #content (الموضع: نسبي)، يمكننا تحديد موضع أي منها عناصر الطفل، نسبة إلى حدودها. لنضع كتلة #div-1a في الزاوية اليمنى العليا من كتلة #المحتوى.
إحدى مزايا تحديد الموضع المطلق هي القدرة على وضع العناصر بأي ترتيب، بغض النظر عن كيفية وجودها في العلامة. في المثال أعلاه، يتم وضع الكتلة #div-1b قبل الكتلة #div-1a.
والآن يجب أن يكون لديك سؤال: "أين ذهبت بقية العناصر من مثالنا؟" لقد اختبأوا تحت كتل موضوعة بشكل مثالي. ولحسن الحظ، هناك طريقة لإصلاح هذا.
7. عمودين بارتفاع ثابت
أحد الحلول هو إعطاء ارتفاع ثابت للحاوية التي تحتوي على الأعمدة.
الحل ليس مناسبًا جدًا، لأننا لا نعرف أبدًا حجم النص الموجود في الأعمدة، وما هو الخط الذي سيتم استخدامه.
8. تعويم
بالنسبة للأعمدة ذات الارتفاع المتغير، لا يعد تحديد الموضع المطلق خيارًا، لذلك دعونا ننظر إلى خيار آخر.
من خلال تعيين تعويم للكتلة، فإننا ندفعها إلى أقصى حد ممكن إلى الحافة اليمنى (أو اليسرى)، وسوف يتدفق النص الذي يلي الكتلة حولها. تُستخدم هذه التقنية عادةً للصور، لكننا سنستخدمها للمزيد مهمة صعبةلأنها الأداة الوحيدة المتاحة لنا.
#div-1a ( تعويم: يسار؛ عرض: 200 بكسل؛ )
9. مكبرات الصوت "العائمة".
إذا قمنا بتعيين float: left للكتلة الأولى ثم float: left للثانية، فسيتم دفع كل كتلة إلى الحافة اليسرى، وسنحصل على عمودين بارتفاع متغير.
ولكن الآن لدينا مشكلة أخرى - تمتد الأعمدة إلى ما هو أبعد من الحاوية الأصلية، مما يؤدي إلى كسر التخطيط بأكمله. هذه هي المشكلة الأكثر شيوعًا لمصممي التخطيط المبتدئين، على الرغم من أنه يمكن حلها بكل بساطة.
10. تعويم التنظيف
يمكن إجراء تنظيف العوامات بطريقتين. إذا كان هناك كتلة أخرى بعد الأعمدة، فيكفي تعيين واضح: كلاهما لها.
أو قم بتعيينه إلى الحاوية الأصلية خاصية الفائض: مختفي
#المحتوى (تجاوز:مخفي؛)
وفي كل الأحوال ستكون النتيجة واحدة.
خاتمة
اليوم، تم أخذ تقنيات تحديد المواقع الأساسية فقط بعين الاعتبار، وأكثرها أمثلة بسيطة. أيضًا، للمساعدة في بداية مصممي التخطيط، أوصي دائمًا بسلسلة من المقالات التي كتبها إيفان ساجالاييف، والتي ساعدتني كثيرًا في وقت ما.
يبدو تحديد الموضع في CSS بسيطًا جدًا. أشر إلى أي كتلة وأين يجب أن تكون موجودة. ومع ذلك، كل شيء ليس بهذه البساطة كما يبدو للوهلة الأولى. هناك عدة نقاط يمكن أن تربك المبتدئين. يمكنك الحصول على قيمة أكبر بكثير من تحديد المواقع إذا فهمت بالتفصيل كيفية عملها.
نموذج الصندوق في CSS وأنواع تحديد المواقع.
قبل أن تبدأ، أنصحك بقراءة مقالة Box Model في CSS. باختصار: كل عنصر في لغة html عبارة عن مستطيل يمكنك تحديد قيم الهوامش الداخلية والخارجية له وكذلك الحد الذي يفصل بينهما.
تحدد أنظمة تحديد الموضع المكان الذي يجب أن يقع فيه هذا المستطيل، وكذلك كيفية تأثيره على العناصر المحيطة به.
يمكن أن تأخذ خاصية الموضع في CSS خمس قيم:
مطلق
نسبي
مُثَبَّت
ثابتة
يرث
القيمة الثابتة هي القيمة الافتراضية. أي عنصر ذو موضع ثابت يكون في التدفق العام للمستند. يتم تحديد قواعد وضعه من خلال نموذج Box. بالنسبة لمثل هذه العناصر، سيتم تجاهل الخصائص top و right و Bottom و left. لاستخدام هذه الخصائص، يجب أن يكون موضع العنصر مطلقًا أو نسبيًا أو ثابتًا.
ومعنى الميراث هو نفسه كما في جميع الآخرين خصائص CSS، يتم استخدامه للتأكد من أن العنصر يستخدم نفس قيمة العنصر الأصلي.
تحديد المواقع المطلقة
يؤدي تحديد الموضع المطلق إلى إزالة عنصر من التدفق الإجمالي للمستند. أما بالنسبة للعناصر الموجودة حولها، فهي في هذه الحالة تتجاهل ببساطة العنصر الذي تم البحث عنه، كما لو كانت تحتوي على خاصية العرض: none؛ . إذا كنت لا ترغب في ملء مساحة هذا العنصر بعناصر أخرى، فأنت بحاجة إلى التوصل إلى نهج مختلف.
يمكنك ضبط موضع العنصر باستخدام الموضع المطلق باستخدام الخصائص العلوية واليسار واليمين والسفلية. تحتاج فقط إلى تحديد اثنين منهم، أعلى أو أسفل، ويسار أو يمين. إذا لم يتم تحديد أي خصائص، فسيتم تعيين الزوج العلوي الأيسر على 0.
مفتاح تحديد المواقع المطلق هو فهم ما هي النقطة المرجعية الخاصة بك. إذا تم ضبط الخاصية العلوية على 20 بكسل، فمن أين يجب حسابها؟
الجواب بسيط: يتم وضع هذه العناصر بالنسبة إلى أقرب عنصر أصل، والذي له موضع آخر غير ثابت. إذا لم يكن هناك مثل هذا العنصر، فسيتم وضع العنصر بالنسبة للمستند الرئيسي. أي أنه عند تعيين الموضع المطلق، يطلب CSS من المتصفح أن ينظر إلى العنصر الأصلي، وإذا لم يكن موضعه ثابتًا، فيجب عليه محاذاة العنصر الحالي بالنسبة إليه.
تحديد المواقع النسبية.
يتم وضع العناصر ذات الموضع النسبي بناءً على موضعها الخاص، وهو تحول طبيعي بالنسبة إلى موقعها الطبيعي. يشبه هذا إضافة حشوة إلى عنصر باستخدام خاصية الهامش. ومع ذلك، هناك اختلاف واحد مهم: العناصر المجاورة، عند استخدام تحديد المواقع، لا تأخذ هذا التحول في الاعتبار.
تخيل الأمر بهذه الطريقة: يتم إزاحة صورة معينة، ويبقى "الشبح" في مكانه؛ وتقع جميع العناصر بالنسبة لهذا "الشبح". وهذا يسمح لنا بوضع العناصر فوق بعضها البعض.
وبالتالي، فإن العناصر ذات الموضع النسبي مأخوذة من التدفق الطبيعي للعنصر، ولكنها لا تزال تؤثر على موضع العناصر المجاورة، والتي تتصرف بطريقة عنصر المصدرلا يزال في دفق المستند.
في هذه الحالة، لا ينبغي لنا أن نسأل السؤال المتعلق بوضع العنصر هنا. الجواب دائمًا هو: التدفق الطبيعي للمستندات. يبدو الأمر وكأنك أضفت حشوة إلى عنصر ما، ولكنها في نفس الوقت لم تؤثر على العناصر المجاورة.
تحديد المواقع الثابتة
يعمل الموضع الثابت بشكل مشابه للموضع المطلق، مع وجود اختلافات طفيفة.
أولاً، يتم دائمًا وضع العنصر ذو الموضع الثابت بالنسبة لنافذة المتصفح، ويتم تجاهل العناصر الأصلية.
الفرق الثاني يأتي من اسمه. يتم إصلاح العناصر الثابتة على الصفحة. لا يتحركون عند التمرير.
مؤشر Z
صفحة الموقع ثنائية الأبعاد. ولها العرض والارتفاع. يضيف مؤشر Z بعدًا ثالثًا وهو العمق.
كلما ارتفع هذا الفهرس، زاد ارتفاع العنصر في الصفحة. باستخدامه يمكننا التأكد من وضع عنصر فوق عنصر آخر. بشكل افتراضي، قيمته هي صفر. القيم السلبية مقبولة أيضًا.
في الواقع، يعد مؤشر z أكثر تعقيدًا مما أصفه هنا، ولكن هذا موضوع لمقالة أخرى. الآن، الشيء الرئيسي الذي يجب تذكره هو فكرة البعد الثالث وحقيقة أن العناصر الموضوعة فقط هي التي يمكنها استخدام هذه الخاصية.
مشاكل تحديد المواقع.
دعونا ننظر إلى عدد قليل المشاكل الشائعةتتعلق بتحديد المواقع، بالإضافة إلى بضع كلمات حول حلها.
لا يمكنك استخدام خاصية الموضع وخاصية التعويم على نفس العنصر في نفس الوقت.تؤثر كلتا الخاصيتين على موضع العنصر، لذلك سيتم استخدام الخاصية الأخيرة المحددة.
من التعليقات:
يمكنك استخدام الموضع: النسبي والتعويم في نفس الوقت.
عندما يتم تحديد الموضع: المطلق والعائم في وقت واحد، فلن يتم تطبيق الخاصية المحددة الأخيرة. في هذه الحالة، بغض النظر عن ترتيب هذه الأنماط، يتم تطبيق الموضع: المطلق، ويتم تعيين القيمة الناتجة (أو المحسوبة) للخاصية العائمة على لا شيء، بغض النظر عن القيمة الأولية، أي. تم تجاهله.
هوامشلا "تنهار" على العناصر ذات الموضع المطلق.لنفترض أن هناك فقرة في الصفحة بهامش سفلي يبلغ 20 بكسل. تليها صورة بهامش علوي 30 بكسل. لن تكون المسافة بين الصورة والنص 50 بكسل (20 بكسل + 30 بكسل)، بل 30 بكسل (30 بكسل > 20 بكسل). ويسمى هذا السلوك طي الهوامش. يتم دمج مسافة بادئة في واحدة. لا تحتوي العناصر الموضوعة بشكل مطلق على هوامش يمكن طيها، لذا قد لا تكون النتيجة ما تتوقعه.
IE ومؤشر z.في IE6، يتم تحديد العنصر دائمًا في الجزء العلوي من المكدس، بغض النظر عن فهرس z أو فهرس z للعناصر المحيطة.
لدى IE6 وIE7 مشكلة أخرى مع مؤشر z. ينظر IE إلى العنصر الأصلي لتحديد مجموعة العناصر التي يوجد بها الجزء العلوي من المكدس، بينما تستخدم المتصفحات الأخرى السياق العام. على سبيل المثال:
نتوقع أن تظهر الفقرة أعلى من الصورة لأن مؤشر z الخاص بها أعلى. ومع ذلك، فإن IE6 وIE7 يضعان الصورة في مكان أعلى لأنهما موجودان في مجموعات مستندات مختلفة. مكدس واحد مخصص لـ div، والثاني مخصص لـ img، والصورة بها مؤشر z أعلى من div.
خاتمة
تحدد خاصية الموضع سلوك تحديد موضع العنصر وفقًا لأحد مخططات تحديد الموضع. قيم الخصائص المتوفرة هي مطلقة ونسبية وثابتة وثابتة (افتراضية) ووارثة.
تحدد أنظمة تحديد المواقع قواعد وضع عنصر على صفحة ويب، بالإضافة إلى التأثير على موقع العناصر المجاورة.
لا يمكن تطبيق خاصية z-index إلا على العناصر التي تم تعيين خاصية الموضع لها. فهو يضيف بُعدًا ثالثًا إلى الصفحة ويضبط ترتيب العناصر المكدسة.
تبدو خاصية الموضع سهلة الفهم، ولكنها تعمل بشكل مختلف قليلاً عما تبدو للوهلة الأولى. غالبًا ما يعتقد المطورون أنهم بحاجة إلى تحديد موضع نسبي، على الرغم من أنه على الأرجح يجب عليهم استخدام تحديد موضع مطلق. بشكل أساسي، يتم استخدام الخاصية float أثناء التخطيط، وتكون الخاصية Position ضرورية للعناصر التي تريد "تمزيقها" من التدفق العام للمستند.
آخر تحديث: 28/04/2016
يوفر CSS إمكانات تحديد موضع العنصر، مما يعني أنه يمكننا وضع عنصر فيه مكان محددعلى الصفحة
الخاصية الرئيسية التي تتحكم في تحديد المواقع في CSS هي خاصية الموضع. يمكن أن تأخذ هذه الخاصية إحدى القيم التالية:
ثابت: تحديد موضع العنصر القياسي، القيمة الافتراضية
مطلق: يتم تحديد موضع العنصر بالنسبة إلى حدود عنصر الحاوية إذا كانت خاصية الموضع الخاصة به ليست ثابتة
نسبي: يتم تحديد موضع العنصر بالنسبة إلى موضعه الافتراضي. عادةً، ليس الغرض الرئيسي من تحديد الموضع النسبي هو نقل العنصر، بل تحديد موضعه نقطة جديدةروابط لتحديد المواقع المطلقة للعناصر المتداخلة
ثابت : يتم وضع العنصر بالنسبة لنافذة المتصفح، وهذا يسمح لك بإنشاء عناصر ثابتة لا تتغير موضعها عند التمرير
لا يجب عليك تطبيق الخاصية float وأي نوع تحديد موضع آخر غير الثابت (أي النوع الافتراضي) على عنصر في نفس الوقت.
تحديد المواقع المطلقة
تحتوي منطقة العرض في المتصفح على حواف علوية وسفلية ويمينية ويسارية. كل من هذه الحواف الأربعة لها خاصية CSS مقابلة: اليسار واليمين والأعلى والأسفل. يتم تحديد قيم هذه الخصائص بالبكسل أو ems أو النسب المئوية. ليس من الضروري تعيين قيم لجميع الجوانب الأربعة. كقاعدة عامة، يتم تعيين قيمتين فقط - المسافة البادئة من الحافة العلوية والمسافة البادئة من الحافة اليسرى إلى اليسار.
تخطيط الكتلة في HTML5
مرحبا بالعالم
هنا سيكون موضع div المطلق 100 بكسل على يسار حدود إطار العرض و50 بكسل من الأسفل.
ليس من المهم أن بعد هذا عنصر divبعض العناصر الأخرى قادمة. ال كتلة شعبةعلى أية حال، سيتم وضعه بالنسبة لحدود إطار عرض المتصفح.
إذا كان العنصر ذو الموضع المطلق موجودًا في حاوية أخرى، والتي بدورها لها قيمة خاصية موضع لا تساوي static ، فسيتم تحديد موضع العنصر بالنسبة لحدود الحاوية:
تحديد المواقع في HTML5
تحديد المواقع النسبية
ويتم تحديد الموضع النسبي أيضًا باستخدام القيمة النسبية. لتحديد الموضع المحدد الذي سيتم إزاحة العنصر إليه، يتم استخدام نفس الخصائص العلوية واليسار واليمين والسفلي:
تحديد المواقع في HTML5
خاصية مؤشر z
افتراضيًا، إذا تطابق عنصران من عناصر الحدود، فسيتم تعريف العنصر في ترميز أتش تي أم ألالأخير. ومع ذلك، تتيح لك الخاصية z-index تغيير ترتيب العناصر عند تراكبها. الخاصية تأخذ رقمًا كقيمة لها. ستظهر العناصر ذات قيمة مؤشر z الأكبر أعلى العناصر ذات قيمة مؤشر z الأصغر.
على سبيل المثال:
تحديد المواقع في HTML5
الآن دعونا نضيف قاعدة جديدة إلى نمط كتلة redBlock:
هنا مؤشر z هو 100. ولكن ليس من الضروري أن يكون الرقم 100. نظرًا لأن الكتلة الثانية ليس لها مؤشر z محدد في الواقع يساوي الصفر، ثم بالنسبة لـ redBlock يمكننا ضبط خاصية z-index على أي قيمة أكبر من الصفر.
والآن سوف تتداخل الكتلة الأولى مع الثانية، وليس العكس، كما كان الحال في البداية.