الخاصية grid

من موسوعة حسوب

الخاصية grid المختصرة في CSS تضبط جميع الخاصيات التي تُحدَّد خصائص الشبكة بوضوح (أي grid-template-rows و grid-template-columns و grid-template-areas)، وجميع الخاصيات التي تُحدِّد خصائص الشبكة ضمنيًا (أي grid-auto-rows و grid-auto-columns و grid-auto-flow)، والخاصيات التي تُضبِط الفراغ بين الأعمدة والأسطر (أي grid-column-gap و grid-row-gap)، وكل ذلك في قاعدة واحدة.

بطاقة الخاصية

القيمة الابتدائية لكل قيمة مختصرة:
تُطبَّق على حاويات grid.
قابلة للوراثة لا
قابلة للتحريك لا
القيمة المحسوبة لكل قيمة مختصرة:
/* <grid-template> */
grid: none;
grid: "a" 100px "b" 1fr;
grid: [linename1] "a" 100px [linename2];
grid: "a" 200px "b" min-content;
grid: "a" minmax(100px, max-content) "b" 20%;
grid: 100px / 200px;
grid: minmax(400px, min-content) / repeat(auto-fill, 50px);

/* <grid-template-rows> / [ auto-flow && dense? ] <grid-auto-columns>? */
grid: 200px / auto-flow;
grid: 30% / auto-flow dense;
grid: repeat(3, [line1 line2 line3] 200px) / auto-flow 300px;
grid: [line1] minmax(20em, max-content) / auto-flow dense 40%;

/* [ auto-flow && dense? ] <grid-auto-rows>? / <grid-template-columns> */
grid: auto-flow / 200px;
grid: auto-flow dense / 30%;
grid: auto-flow 300px / repeat(3, [line1 line2 line3] 200px);
grid: auto-flow dense 40% / [line1] minmax(20em, max-content);

/* القيم العامة */
grid: inherit;
grid: initial;
grid: unset;

ملاحظة: يمكنك تحديد القيم التي تُحدِّد خصائص الشبكة بوضوح (explicit) أو التي تُحدِّدها ضمنيًا (implicit) في قاعدة grid، والخاصيات التي لا تُحدِّد قيمتها ستُضبَط إلى القيمة الابتدائية (كما هو معتاد في الخاصيات المختصرة).

أمثلة

استعملنا في المثال الآتي تخطيط grid مع تحديد مسارات الأسطر (row tracks) لتقسيم الشبكة إلى سطرين، وكل سطر بارتفاع 60px، أما الأعمدة فهي بعرض 80px:

<div id="container">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

شيفرة CSS:

#container {
  display: grid;
  grid: repeat(2, 60px) / auto-flow 80px;
}

#container > div {
  background-color: #8ca0ff;
  width: 50px;
  height: 50px;
}

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي 57.0 52.0 10 (مع السابقة -ms-) 44 10.1

الإصدارات القديمة من متصفح Edge كانت تدعم تخطيط Grid دعمًا جزئيًا (كما في متصفح IE)، لكن الإصدار Edge 16 أصبح يدعم تخطيط Gird دعمًا كاملًا.

البنية العامة

تقبل الخاصية gird القيم التالية.

خصائص القالب

<grid-template>

تحديد قيمة للخاصية grid-template التي تتضمن الخاصيات grid-template-columns و grid-template-rows و grid-template-areas.

مسارات الأسطر

<grid-template-rows> / [ auto-flow && dense? ] <grid-auto-columns>?

ضبط آلية ملء المحتوى بتحديد مسارات الأسطر (row tracks) بوضوح عبر الخاصية grid-template-rows (وبضبط الخاصية grid-template-columns إلى none) وبتحديد كيفية تكرار مسارات الأعمدة (column tracks) عبر الخاصية grid-auto-columns (وبضبط الخاصية grid-auto-rows إلى auto)؛ وستُضبَط الخاصية grid-auto-flow إلى column، مع dense إن حُدِّدَت.

سيُعاد ضبط جميع الخاصيات الأخرى التي تضبطها الخاصية grid إلى قيمها الابتدائية.

مسارات الأعمدة

[ auto-flow && dense? ] <grid-auto-rows>? / <grid-template-columns>

ضبط آلية ملء المحتوى بتحديد مسارات الأعمدة (column tracks) بوضوح عبر الخاصية grid-template-columns (وبضبط الخاصية grid-template-rows إلى none) وبتحديد كيفية تكرار مسارات الأسطر (row tracks) عبر الخاصية grid-auto-rows (وبضبط الخاصية grid-auto-columns إلى auto)؛ وستُضبَط الخاصية grid-auto-flow إلى row، مع dense إن حُدِّدَت.

سيُعاد ضبط جميع الخاصيات الأخرى التي تضبطها الخاصية grid إلى قيمها الابتدائية.

البنية الرسمية

grid: <'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>;

مصادر ومواصفات