ساحة تجارب Flexbox وGrid
ابنِ تخطيطات flexbox وCSS grid بصريًا: اضبط خصائص الحاوية والعناصر، وسمِّ مناطق الشبكة، وشاهد النتيجة مباشرةً، وانسخ شيفرة CSS وHTML نظيفة.
تخطيطات جاهزة
انقر على عنصر في المعاينة لتحديده وتعديل خصائصه أدناه.
كيفية استخدام ساحة تجارب Flexbox وGrid
- اختر التخطيط: Flexbox أو Grid، أو ابدأ من أحد التخطيطات الجاهزة (توسيط وشريط تنقّل وبطاقات تلتفّ وشريط جانبي وشبكة بطاقات متجاوبة والكأس المقدسة (Holy grail) و12 عمودًا).
- اضبط خصائص الحاوية. في flexbox:
flex-directionوflex-wrap. وفي grid: grid-template-columnsوgrid-template-rowsوgrid-auto-flowوjustify-itemsوgrid-template-areas. ويشترك الوضعان فيjustify-contentوalign-itemsوalign-contentوrow-gap (px)وcolumn-gap (px). - أدِر العناصر بأزرار إضافة عنصر وحذف العنصر المحدد وإعادة ضبط العنصر المحدد. انقر على عنصر في المعاينة (أو انتقل إليه بمفتاح Tab واضغط Enter) لتحديده.
- عدّل العنصر المحدد:
orderوalign-selfفي الوضعين، وflex-growوflex-shrinkوflex-basisفي flexbox، وgrid-areaوgrid-columnوgrid-rowوjustify-selfفي grid. - انسخ شيفرة CSS وشيفرة HTML المطابقة لها بزرَّي نسخ الخاصين بهما.
كل عنصر تحكم هو حقل نموذج قياسي، فتعمل ساحة التجارب كلها بلوحة المفاتيح وحدها. ولا تحتوي شيفرة CSS إلا على الخصائص التي غيّرتها عن قيمها الافتراضية، فتبقى قصيرة، وتشترك العناصر ذات الإعدادات المتطابقة في قاعدة واحدة (.item عندما تتطابق كلها).
Flexbox باختصار
يرتّب Flexbox العناصر على محور واحد. تحدّد flex-direction المحور الرئيسي (صف أو عمود)، وتوزّع justify-content العناصر على امتداده (center وspace-between…)، وتضع align-items العناصر على المحور العرضي. ومع flex-wrap: wrap تنتقل العناصر التي لا تتسع إلى سطر جديد، ثم تباعد align-content بين تلك الأسطر.
ولكل عنصر ثلاث خصائص للحجم، تُكتب عادةً معًا في الخاصية flex:
flex-basis: الحجم الابتدائي (تستخدمautoحجم المحتوى أو قيمةwidth)؛flex-grow: مقدار ما يأخذه العنصر من المساحة الحرة (0 = لا شيء، 1 = حصة متساوية)؛flex-shrink: مقدار ما يتنازل عنه عندما تضيق المساحة (0 = لا يتقلص أبدًا).
يعرض التخطيط الجاهز شريط جانبي النمط الكلاسيكي: شريط جانبي بقيمة flex-basis: 200px وflex-shrink: 0، ومنطقة رئيسية بقيمة flex-grow: 1.
CSS Grid باختصار
يرتّب Grid العناصر في بُعدين. تنشئ grid-template-columns: repeat(3, 1fr) ثلاثة أعمدة متساوية، والوحدة fr حصة من المساحة الحرة. أما repeat(auto-fill, minmax(120px, 1fr)) فتنشئ أكبر عدد ممكن من الأعمدة التي لا يقل عرض كل منها عن 120px، فتحصل على شبكة بطاقات متجاوبة دون أي استعلام وسائط (media query).
تملأ العناصر الخلايا بالترتيب ما لم تحدّد أماكنها: فالقيمة grid-column: span 2 تجعل العنصر بعرض عمودين، وgrid-column: 1 / -1 تمدّه على الصف كله.
وتتيح لك grid-template-areas رسم التخطيط بالأسماء. اكتب صفًا واحدًا في كل سطر، مثل header header ثم nav main، وأعطِ العناصر grid-area: header أو grid-area: main. وتدل النقطة على خلية فارغة. يجب أن يحتوي كل صف على العدد نفسه من الخلايا، وأن يشكّل كل اسم مستطيلًا، وإلا نبّهتك الأداة.
الأسئلة الشائعة
هل أستخدم flexbox أم grid؟
استخدم flexbox للمحتوى أحادي البُعد، كأشرطة الأدوات ومجموعات الأزرار والتوسيط. واستخدم grid عندما يجب أن تصطف الصفوف والأعمدة معًا، كما في تخطيطات الصفحات ومعارض البطاقات. ويتكاملان جيدًا: شبكة بطاقات يستخدم داخل كل منها flexbox.
لماذا لا تغيّر align-items شيئًا؟
في الصف، تتمدّد العناصر افتراضيًا إلى ارتفاع الحاوية، والحاوية لا يزيد ارتفاعها على ارتفاع محتواها. أعطِ الحاوية ارتفاعًا، أو انظر إلى المعاينة التي لها ارتفاع أدنى.
ماذا تفعل gap؟
تحدّد المسافة بين العناصر (لا حولها). وتعمل في flexbox وgrid على حد سواء في جميع المتصفحات الحالية.
هل تغيّر order ترتيب القراءة؟
لا. تنقل order العناصر بصريًا فقط، أما قارئات الشاشة والتنقل بلوحة المفاتيح فتتبع ترتيب HTML، فاستخدمها باعتدال. وتذكّر أيضًا أن اتجاه الصفحة يؤثر في المحور الرئيسي: في صفحة من اليمين إلى اليسار (dir="rtl") يبدأ الصف flex-direction: row من اليمين.
أدوات ذات صلة
- منسّق CSS وضاغطه جمّل شيفرة CSS الفوضوية بمسافات بادئة مرتبة أو اضغطها باستخدام csso، واعرض الحجم قبل وبعد. تعمل في متصفحك دون رفع أي شيء.
- مولّد border-radius للزوايا المستديرة صمّم خاصية border-radius في CSS بصريًا بمقابض قابلة للسحب: اضبط كل زاوية بـ px أو %، واستخدم الصيغة الإهليلجية بثماني قيم، وانسخ الشيفرة.
- مولّد الظل box-shadow في CSS صمّم ظلال box-shadow في CSS بطبقات متعددة مع معاينة مباشرة: الإزاحة والتمويه والانتشار واللون والعتامة وinset، مع أنماط نيومورفيزم جاهزة.