تخيل أن مطور الويب ليس مضطرًا إلى التفكير على الإطلاق في الشكل الذي سيبدو عليه بصريًا الصفحة النهائية. إنه ببساطة يكتب الكود، والعناصر نفسها تصطف على الصفحة، من أعلى إلى أسفل (كتلة) ومن اليسار إلى اليمين (مضمنة). كلما تمت كتابة الرمز في أعلى المستند، ظهر في أعلى الصفحة.
بشكل عام، سوف نرى السلوك الطبيعي للعناصر، والترتيب الذي يتم عرضها به على الصفحة - تدفق الوثيقة. لكننا لسنا سعداء على الإطلاق بهذا الطلب؛ نريد وضع الشعار على اليسار الزاوية العليا، والزر إلى اليمين قليلاً. نحن نحتاج السيطرة الكاملةعلى جميع العناصر، نقرر أين وماذا سيتم تحديد موقعه. ولهذا تحتاج إلى أداة (خاصية) تغير السلوك الطبيعي للعناصر في التدفق. أي نوع من الممتلكات هذا؟
في CSSالأنماط وهذا ما يسمى تحديد المواقع (موضع)، والتي قد تكون عادية (ثابتة)، نسبي (نسبي)والمطلقة (مطلق).
في تحديد المواقع النسبية، تتحرك الكتلة بالنسبة لها موقف البداية. ومع ذلك، بعد أن كتب إلى الكتلة:
المنصب: نسبي؛
لن يحدث شيء، سيبقى في مكانه. ويقوم نظام الإحداثيات بتحريك الكتلة (الفوق تحت يسار يمين)، مع كل من القيم الإيجابية والسلبية.
داخل كتلة صفراء مع فئة كتلة صفراءهناك كتلة حمراء مع فئة كتلة نسبية. في التدفق الطبيعي، تتداخل الكتلة الحمراء مع الكتلة الصفراء، حيث يتم كتابتها أخيرًا في الكود.
نحن بحاجة إلى تحريك الكتلة الحمراء لأسفل بمقدار 10 بكسل. لا يمكن القيام بذلك إلا عن طريق تغيير موضع الكتلة الحمراء بالقوة. هذه هي الطريقة التي نكتبها أعلى: 10 بكسل، ولكن هل تحتاج إلى الإشارة إلى المكان الذي سيتم حساب وحدات البكسل العشرة هذه منه؟
بعد أن سجلت الموقف: نسبي، نوضح أننا نحسب بالنسبة إلى وضعه الحالي.
كتلة صفراء (
لون الخلفية: #ffe70f؛
}
كتلة نسبية (
الموقف: نسبي؛
أعلى: 10 بكسل؛
لون الخلفية: #ed5b77؛
}
في الصورة نرى كيف تحركت الكتلة الحمراء للأسفل بمقدار 10 بكسل للأسفل من موضعها الأصلي.
إذا قمت بإزالته من التعليمات البرمجية الموقف: نسبي، ثم ستبقى الكتلة في مكانها. ماذا لو بدلا من ذلك نسبي، يكتب مطلق، سيتم حساب هذه البكسلات العشرة افتراضيًا من حافة نافذة المتصفح، ونتيجة لذلك، سترتفع الكتلة الخاصة بنا، على العكس من ذلك، لتصل إلى الحافة السفلية للمتصفح. وهذا لم يكن جزءا من خططنا.
هناك كتلة في الصورة وضعه على الاطلاق، وذلك عندما يتم حساب نظام الإحداثيات من حافة المتصفح، عن طريق استبدال كلمة واحدة فقط، قمنا بتغيير موضع الكتلة.
الموقف: مطلق؛
هناك خصوصية واحدة. تحديد المواقع المطلقةيؤثر أيضًا على العناصر المضمنة. إذا تم إعطاء العنصر المضمن الموقف: مطلق، فسوف تتصرف مثل كتلة واحدة. وهذا مشابه للملكية - العرض محجوب.
هذا ليس كل شيء، فالعنصر "المطلق" الموجود داخل الأصل "النسبي" يغير النقطة المرجعية الإحداثية الخاصة به ويبدأ في وضعه بعيدًا عن الأصل.
حظر مع الفصل كتلة مطلقةيكون داخل الوالدين كتلة صفراء.
كتلة صفراء (
الموقف: نسبي؛
الحشو: 10 بكسل؛
لون الخلفية: #ffe70f؛
}
منذ الكتلة الصفراء لديها تحديد المواقع النسبية ، ثم الكتلة الحمراء مع تحديد المواقع المطلقة، يتحول بالنسبة إلى اللون الأحمر بواسطة وحدات بكسل محددة.
الكتلة المطلقة (
الموقف: مطلق؛
أسفل: 10 بكسل؛
اليسار: 10 بكسل؛
لون الخلفية: #ed5b77؛
}
عند التمرير في الصفحة، يتم إنشاء كتلة بها الموقف: ثابت، سيبقى في مكانه، تُستخدم هذه الطريقة عادةً لإصلاح شريط التنقل.
يحل ترتيب الكتل "المطلقة" المتداخلة. نحتاج أن تكون الكتلة الحمراء أعلى الكتلة الصفراء، ثم نشير مؤشر z: 2 للأحمر و مؤشر z: 1 للأصفر.
كتلة حمراء (
الموقف: نسبي؛
مؤشر z: 2؛
لون الخلفية: #ffe70f؛
}
كتلة صفراء (
الموقف: مطلق؛
أعلى: 20 بكسل؛
مؤشر z: 1؛
لون الخلفية: #ed5b77؛
}
في هذه الأيام، يمكن لمطوري الويب إنشاء تخطيطات معقدة لصفحات الويب باستخدام تقنيات مختلفة CSS. بعض هذه التقنيات لها تاريخ طويل (العوامات)، والبعض الآخر (فليكس بوكس) حقق شعبية في السنوات الاخيرة.
في هذه المقالة، سنلقي نظرة فاحصة على بعض الأشياء غير المعروفة حول تحديد موضع CSS.
قبل أن نبدأ، دعونا نلخص الأساسيات بسرعة. أنواع مختلفةالتمركز.
خاصية CSSيحدد الموضع نوع موضع العنصر.
ثابت هو قيمة خاصية تحديد المواقع الافتراضية. ننصح بأن هذا العنصر لا يستخدم تحديد الموضع - يتم تطبيق تحديد الموضع فقط في حالة تحديد نوع تحديد موضع آخر غير النوع الافتراضي.
للقيام بذلك، تحتاج إلى تعيين خاصية الموضع إلى واحدة من القيم التالية:
وفقط بعد تحديد الموضع، يمكنك استخدام الخصائص التي تعوض العنصر:
وينبغي أن يؤخذ في الاعتبار أنه إذا كان هناك عنصر خاصية الموقفعند ضبطه على القيمة المطلقة أو الثابتة، فهو عنصر ذو موضع مطلق. أيضًا بالنسبة للعناصر الموضوعة يبدأ العمل خاصية مؤشر z، الذي يحدد ترتيب التراص.
الآن دعونا نلقي نظرة سريعة على الثلاثة الاختلافات الأساسيةبين الأنواع المتاحةالتمركز:
يمكنك رؤية ذلك بمزيد من التفاصيل في العرض التوضيحي:
ملاحظة: لا يزال موضع "العناصر الملصقة" ثابتًا التكنولوجيا التجريبيةمع دعم محدود في المتصفحات. بالطبع، إذا كنت ترغب في ذلك، يمكنك استخدام polyfill لإضافة هذه الوظيفة إلى المتصفح، ولكن نظرًا لانتشارها المنخفض، لن تتم مناقشة هذه الخاصية في المقالة.
أنا متأكد من أن معظم الناس يعرفون كيف يعمل تحديد المواقع المطلق. ومع ذلك، هناك أشياء كثيرة حول هذا الموضوع قد تربك المبتدئين.
لذلك، قررت أن أبدأ به عند وصف ميزات تحديد المواقع غير المعروفة.
لذلك، يتم إزاحة العنصر ذو الموضع المطلق بالنسبة إلى أقرب سلف له في الموضع. بالطبع، يعمل هذا إذا كان لأي من الأسلاف موضع آخر غير ثابت - إذا لم يكن للعنصر أسلاف موضعية، فسيتم إزاحته بالنسبة لمنطقة الرؤية.
ويتضح ذلك من خلال المثال التالي:
في هذا العرض كتلة خضراءتم وضعه في البداية بشكل مطلق مع حشوة صفرية أسفل:0 ويسار:0، ولم يتم إعطاء سلفه (الكتلة الحمراء) أي موضع على الإطلاق.
ومع ذلك، فقد قمنا بوضع الغلاف الخارجي نسبيًا (عنصر من فئة جمبوترون). لاحظ كيف يتغير موضع الكتلة الخضراء عندما يتغير نوع تحديد موضع أسلافها.
إذا قمنا بتطبيق تحديد موضع مطلق أو ثابت على عنصر عائم، فسيتم تعيين الخاصية float على لا شيء. من ناحية أخرى، إذا قمنا بتعيين موضع نسبي، فسيظل العنصر عائمًا.
ألق نظرة على العرض التوضيحي المقابل:
في هذا المثال، قمنا بتعريف عنصرين مختلفين يتحركان إلى اليمين. لاحظ أنه عندما تصبح الكتلة الحمراء في موضعها المطلق، فإنها تتجاهل القيمة خصائص تعويم، بينما تحتفظ الكتلة الخضراء الموضوعة نسبيًا بقيمتها العائمة.
يأخذ العنصر المضمن ذو الموضع المطلق أو الثابت خصائص عنصر الكتلة. يتم وصف تحويل العناصر المضمنة إلى عناصر الكتلة بمزيد من التفصيل في الجدول.
في في هذه الحالةلقد أنشأنا عنصرين مختلفين. الأول (الكتلة الخضراء) هو عنصر كتلة، والثاني (الكتلة الحمراء) هو عنصر مضمن. في البداية، تكون الكتلة الخضراء فقط مرئية.
الكتلة الحمراء غير مرئية لأن خصائص العرض والارتفاع المعطاة لها تعمل فقط مع الكتلة و عناصر الكتلة المضمنةوبما أنه ليس له محتوى، فهو ليس له أبعاد.
عند إعطاء الكتلة الحمراء مطلقة أو تحديد المواقع الثابتة، يصبح كتلة وتبدأ أحجام الكتلة المحددة فيه في التنفيذ.
افتراضيًا، عندما يتلامس هامشان رأسيان، يتم دمجهما في هامش واحد يساوي الحد الأقصى لهما. وهذا ما يسمى انهيار الهامش.
سلوك العناصر التي تم وضعها بشكل مطلق هنا يشبه العناصر العائمة - لا يتم دمج الحشو الخاص بها مع جيرانها.
في هذا العرض التوضيحي، يتم إعطاء العنصر مساحة 20 بكسل. المسافة البادئة له تنهار مع المسافة البادئة العنصر الأصلي، ويساوي أيضًا 20 بكسل. كما ترون، فقط عندما تحديد المواقع المطلقةلا يحدث أي انهيار.
ولكن كيف يمكننا منع الهوامش من الانهيار؟ نحن بحاجة إلى وضع نوع من الفاصل بينهما.
يمكن أن يكون ذلك عبارة عن حشوة أو حدود، ويمكن تطبيقه على كل من العناصر الأصلية والفرعية. خيار آخر هو إضافة واضح إلى العنصر الأصلي.
هل سبق لك استخدام النسب المئوية بدلاً من البكسل لتحديد موضع العناصر؟ إذا كانت الإجابة بنعم، فأنت تعلم أن إزاحة العنصر تعتمد على الوحدات المختارة (البكسل أو النسب المئوية).
إنه مربك بعض الشيء، أليس كذلك؟ لذلك دعونا نرى أولاً ما تقوله المواصفات حول نسبة الإزاحة:
الإزاحة كنسبة مئوية من العرض (لليسار واليمين) أو الارتفاع (للأعلى أو للأسفل) كتلة الوالدين. بالنسبة للعناصر الملصقة، يتم حساب الإزاحة كنسبة مئوية من العرض (لليسار واليمين) أو الارتفاع (للأعلى أو للأسفل) للتدفق. القيم السلبية مقبولة.
كما ذكرنا، عند تعيين الإزاحة كنسبة مئوية، يعتمد موضع العنصر على عرض العنصر الأصلي وارتفاعه.
يظهر العرض التوضيحي هذا الاختلاف:
يستخدم هذا المثال وحدات البكسل والنسب المئوية للإزاحة. بالطبع، عند تحديد الإزاحة بالبكسل، يتم نقل العنصر إلى المكان المطلوب.
وإذا اخترنا نسبة مئوية للإزاحة، فإن النتيجة ستعتمد على حجم العنصر الأصلي. فيما يلي تصور يوضح كيفية حساب الموضع الجديد:
ملحوظة: كما تعلم، فإن خاصية التحويل (مع وظائف مختلفةترجمة) يسمح لك أيضًا بتغيير موضع العنصر. ولكن في هذه الحالة، عند استخدام النسب المئوية، سيعتمد الحساب على حجم العنصر نفسه، وليس على الأصل.
آمل أن يكون هذا المقال قد ساعدك على فهم تحديد المواقع بشكل أفضل في CSS وتوضيح بعض التحديات.
عند العمل مع النص، قد يحتاج المستخدم إلى تبديل الجمل أو الفقرات بأكملها أو ترتيب الأجزاء بطريقة غير قياسية. نقل كتلة من النص إلى تطبيق مايكروسوفت كلمة المكتبممكن بعدة طرق.
يقوم Ctrl وShift والسهم لليمين/لليسار بتمييز الكلمة، وإذا استخدمت الأسهم لأعلى أو لأسفل، فيمكنك تمييز فقرة بأكملها.