تخطيطات معقدة باستخدام أمثلة flex css. ما هو فليكس بوكس؟ وصف لجميع خصائص CSS والمبادئ الأساسية والمزايا والعيوب

تخطيطات معقدة باستخدام أمثلة flex css.  ما هو فليكس بوكس؟  وصف لجميع خصائص CSS والمبادئ الأساسية والمزايا والعيوب
تخطيطات معقدة باستخدام أمثلة flex css. ما هو فليكس بوكس؟ وصف لجميع خصائص CSS والمبادئ الأساسية والمزايا والعيوب

تعد Flexboxes مثالية لإنشاء تخطيطات مواقع الويب شائعة الاستخدام، مثل تخطيط "Holy Grail" المكون من ثلاثة أعمدة، حيث يجب أن تكون جميع الأعمدة بارتفاع كامل، بغض النظر عن محتواها. وفي الوقت نفسه، في مصدر الرمزيأتي المحتوى الرئيسي قبل التنقل، وفي الصفحة نفسها يأتي المحتوى الرئيسي بعد التنقل.

مثله.

مثال

قبعة
شرط
قبو

قبل Flexbox، كان من الصعب جدًا تحقيق هذا التصميم دون استخدام بعض الاختراقات. كان على المطورين في كثير من الأحيان القيام بأشياء مثل إضافة علامات إضافية وتطبيق هوامش سلبية وحيل أخرى للتأكد من أن كل شيء سيصطف بشكل صحيح بغض النظر عن مقدار المحتوى أو حجم الشاشة. ولكن، كما يوضح المثال أعلاه، كل شيء يبدو أبسط بكثير على Flexbox.

فيما يلي ملخص للكود. في هذا المثال، نجعل العنصر #main عبارة عن حاوية مرنة، ونترك الرأس والتذييل كعناصر كتلة. بمعنى آخر، الجزء الأوسط فقط يصبح flexbox. إليك مقتطف يجعلها حاوية مرنة.

#main (العرض: مرن؛ الحد الأدنى للارتفاع: calc(100vh - 40vh);)

ما عليك سوى استخدام العرض: flex لإنشاء حاوية مرنة. لاحظ أننا قمنا أيضًا بتعيين الحد الأدنى للارتفاع باستخدام الدالة calc() وقمنا بتعيين #main على 100% من ارتفاع إطار العرض ناقصارتفاع الرأس والقاعدة (20vh لكل منهما). وهذا يضمن أن التخطيط سوف يملأ ارتفاع الشاشة بالكامل، حتى لو كان هناك القليل من المحتوى. ونتيجة لذلك، لن يرتفع التذييل مطلقًا ويترك مساحة فارغة أسفله إذا كان المحتوى يشغل أقل من ارتفاع الشاشة.

كان حساب الحد الأدنى للارتفاع أمرًا بسيطًا للغاية، نظرًا لأننا طبقنا حجم الصندوق: مربع الحدود على جميع العناصر. إذا لم نفعل ذلك، فسنحتاج إلى إضافة قيمة الحشو إلى المجموع لطرحها.

بعد تثبيت الحاوية المرنة، نتعامل مع العناصر المرنة.

#main > المادة ( flex: 1; ) #main > nav, #main > جانبا ( flex: 0 0 20vw; الخلفية: بيج; ) #main > nav ( الترتيب: -1; )

الخاصية flex هي اختصار لخصائص النمو المرن، والانكماش المرن، والأساس المرن. في الحالة الأولى، كتبنا قيمة واحدة فقط، لذلك تقوم flex بتعيين خاصية flex-grow. وفي الحالة الثانية، كتبنا القيم الثلاث لـ