Flexbox - ورقة الغش Ultimate CSS Flex (مع الرسوم البيانية المتحركة!)
ستغطي ورقة غش CSS المرنة الشاملة هذه كل ما تحتاج إلى معرفته لبدء استخدام flexbox في مشاريع الويب الخاصة بك.
يتيح لك تخطيط CSS flexbox تنسيق HTML بسهولة. يجعل Flexbox من السهل محاذاة العناصر رأسيًا وأفقيًا باستخدام الصفوف والأعمدة. العناصر سوف "تنثني" لأحجام مختلفة لملء الفراغ. يجعل التصميم سريع الاستجابة أسهل.
يعد CSS flexbox رائعًا للاستخدام في التخطيط العام لموقع الويب أو التطبيق الخاص بك. من السهل التعلم ، وهو مدعوم في جميع المتصفحات الحديثة ، ولا يستغرق الأمر وقتًا طويلاً لمعرفة الأساسيات. بنهاية هذا الدليل ، ستكون جاهزًا لبدء استخدام flexbox في مشروعات الويب الخاصة بك.
تتضمن المقالة صورًا متحركة مفيدة من Scott Domes والتي ستجعل من السهل فهم وتصور flexbox.
جميع خصائص CSS Flexbox
فيما يلي قائمة بجميع خصائص flexbox لـ CSS التي يمكن استخدامها لوضع العناصر في CSS. بعد ذلك ، سترى كيف تعمل.
CSS التي يمكن تطبيقها على الحاوية
display: flexbox | inline-flex; flex-direction: row | row-reverse | column | column-reverse; flex-wrap: nowrap | wrap | wrap-reverse; flex-flow: || justify-content: flex-start | flex-end | center | space-between | space-around; align-items: flex-start | flex-end | center | baseline | stretch; align-content: flex-start | flex-end | center | space-between | space-around | stretch;
CSS التي يمكن تطبيقها على العناصر / العناصر الموجودة في الحاوية
order: ; flex-grow: ; /* default 0 */ flex-shrink: ; /* default 1 */ flex-basis: | auto; /* default auto */ flex: none | [ ? || ] align-self: auto | flex-start | flex-end | center | baseline | stretch;
المصطلح

قبل أن تتعلم ما تفعله خصائص flexbox ، من المهم أن تفهم المصطلحات المرتبطة بها. فيما يلي تعريفات لمصطلحات Flexbox الرئيسية ، مأخوذة من مواصفات W3C الرسمية لـ flexbox.
- المحور الرئيسي : المحور الرئيسي للحاوية المرنة هو المحور الأساسي الذي يتم على طوله وضع العناصر المرنة. يعتمد الاتجاه على خاصية الاتجاه المرن.
- البداية الرئيسية | النهاية الرئيسية :يتم وضع العناصر المرنة داخل الحاوية بدءًا من جانب البداية الرئيسية وتتجه نحو الجانب الرئيسي.
- الحجم الرئيسي : عرض أو ارتفاع الحاوية المرنة أو العنصر المرن ، أيهما في البعد الرئيسي ، هو الحجم الرئيسي لهذا الصندوق. وبالتالي ، فإن خاصية الحجم الرئيسية لها هي إما خاصية العرض أو الارتفاع ، أيهما في البعد الرئيسي.
- المحور المتقاطع : يسمى المحور العمودي على المحور الرئيسي المحور المتقاطع. يعتمد اتجاهها على اتجاه المحور الرئيسي.
- بداية متقاطعة | عرضية : تملأ الخطوط المرنة بالعناصر وتوضع في الحاوية بدءًا من جانب البداية المتقاطعة للحاوية المرنة وتتجه نحو الجانب المتقاطع.
- عبر الحجم : عرض أو ارتفاع عنصر مرن ، أيهما في البعد المتقاطع ، هو الحجم المتقاطع للعنصر. تكون خاصية الحجم المتقاطع أيهما من "العرض" أو "الارتفاع" في البعد المتقاطع.
CSS Display Flex
display: flex
هو يخبر متصفحك ، "أريد استخدام flexbox مع هذه الحاوية ، من فضلك."
A div
التخلف عنصر ل display:block
. يشغل العنصر الذي يحتوي على إعداد العرض هذا العرض الكامل للخط الموجود عليه. فيما يلي مثال لأربعة عناصر div ملونة في عنصر div أصلي مع إعداد العرض الافتراضي:

لاستخدام flexbox في قسم من صفحتك ، قم أولاً بتحويل الحاوية الرئيسية إلى حاوية مرنة عن طريق الإضافة display: flex;
إلى CSS للحاوية الرئيسية.
سيؤدي هذا إلى تهيئة هذه الحاوية كحاوية مرنة وتطبيق بعض الخصائص المرنة الافتراضية.

الاتجاه المرن
flex-direction
يسمح لك بالتحكم في كيفية عرض العناصر الموجودة في الحاوية. هل تريدهم من اليسار إلى اليمين ، أو من اليمين إلى اليسار ، أو من أعلى إلى أسفل ، أو من أسفل إلى أعلى؟ يمكنك القيام بكل ذلك بسهولة عن طريق ضبط flex-direction
الحاوية.
الترتيب الافتراضي بعد التطبيق display: flex
هو ترتيب العناصر على طول المحور الرئيسي من اليسار إلى اليمين. يوضح الرسم المتحرك أدناه ما يحدث عند flex-direction: column
إضافته إلى عنصر الحاوية.

يمكنك أيضًا التعيين flex-direction
إلى row-reverse
و column-reverse
.

تبرير المحتوى
justify-content
هي خاصية لمحاذاة العناصر في الحاوية على طول المحور الرئيسي (انظر مخطط المصطلحات أعلاه). يتغير هذا حسب كيفية عرض المحتوى. يسمح لنا بملء أي مساحة فارغة في الصفوف وتحديد كيف نريد "تبريرها".
وهنا لدينا الخيارات الأكثر شيوعا لتبرير المحتوى: flex-start | flex-end | center | space-between | space-around
.
إليك ما تبدو عليه الخيارات المختلفة:

space-between
يوزع العناصر بحيث يكون العنصر الأول متوافقاً مع البداية والعنصر الأخير يتدفق مع النهاية. space-around
متشابه ولكن العناصر بها مساحة نصف الحجم على كلا الطرفين.
عناصر المحاذاة المرنة
align-items
يسمح لنا بمحاذاة العناصر على طول المحور المتقاطع (انظر مخطط المصطلحات أعلاه). يسمح ذلك بوضع المحتوى بعدة طرق مختلفة باستخدام ضبط المحتوى ومحاذاة العناصر معًا.
فيما يلي الخيارات الأكثر شيوعًا المستخدمة لمحاذاة العناصر: flex-start | flex-end | center | baseline | stretch
ل stretch
للعمل كيف تتوقعون، يجب تعيين ارتفاع عنصر من العناصر التي auto
بدلا من ارتفاع محددة.
تُظهر هذه الرسوم المتحركة كيف تبدو الخيارات:

الآن سنستخدم كلا من justify-content
و align-items
. سيظهر هذا الفرق بين المحاور الرئيسية والمحاور المتقاطعة.

محاذاة الذات
align-self
يسمح لك بضبط محاذاة عنصر واحد.
لها كل نفس خصائص align-items
.
في الرسم المتحرك التالي ، يحتوي div الأصل على CSS align-items: center
و flex-direction: row
. أول مربعين يتنقلان عبر align-self
قيم مختلفة .

فليكس راب
سيحاول Flexbox افتراضيًا احتواء جميع العناصر في صف واحد. ومع ذلك ، يمكنك تغيير هذا مع flex-wrap
الخاصية. هناك ثلاث قيم يمكنك استخدامها لتحديد وقت انتقال العناصر إلى صف آخر.
القيمة الافتراضية هي flex-wrap: nowrap
. سيؤدي هذا إلى بقاء كل شيء في صف واحد من اليسار إلى اليمين.
flex-wrap: wrap
سيسمح للعناصر بالانتقال إلى الصف التالي إذا لم تكن هناك مساحة كافية في الصف الأول. سيتم عرض العناصر من اليسار إلى اليمين.
flex-wrap: wrap-reverse
يسمح أيضًا للعناصر بالظهور إلى الصف التالي ولكن هذه المرة يتم عرض العناصر من اليمين إلى اليسار.
فليكس فلو
flex-flow
يجمع بين استخدام flex-wrap
و flex-direction
في خاصية واحدة. يتم استخدامه عن طريق تحديد الاتجاه أولاً ثم الالتفاف. هنا مثال:flex-flow: column wrap;
محاذاة المحتوى
align-content
يستخدم لمحاذاة العناصر مع خطوط متعددة. إنه مخصص للمحاذاة على المحور العرضي ولن يكون له أي تأثير على المحتوى الموجود في سطر واحد.
فيما يلي الخيارات: align-content: flex-start | flex-end | center | space-between | space-around | stretch;
توسيط عموديًا باستخدام Flexbox
إذا كنت تريد توسيط جميع المحتويات عموديًا داخل عنصر أصل ، فاستخدم align-items
. هذا هو الكود الذي يجب استخدامه:
.parent { display: flex; align-items: center; }
الألعاب والتطبيقات
إذا كنت ترغب في ممارسة استخدام Flexbox ، فجرب هذه الألعاب والتطبيقات التي ستساعدك على إتقان flexbox.
- Flexbox Defense هي لعبة ويب حيث تتعلم flexbox بينما تحاول منع الأعداء القادمين من تجاوز دفاعاتك.
- Flexbox Froggy هي لعبة تساعد فيها Froggy والأصدقاء عن طريق كتابة كود CSS.
- Flexyboxes هو تطبيق يسمح لك بمشاهدة نماذج التعليمات البرمجية وتغيير المعلمات لترى كيف يعمل Flexbox بصريًا.
- Flexbox Patters هو موقع ويب يعرض مجموعة من أمثلة Flexbox.
استنتاج
لقد قمنا بتغطية جميع خصائص Flexbox الأكثر شيوعًا في CSS. الخطوة التالية هي الممارسة! حاول إنشاء بعض المشاريع باستخدام flexbox حتى تتمكن من التعود على كيفية عملها.