Свойство grid-template-areas в CSS Grid позволяет вам задавать именованные области для сетки, что упрощает размещение элементов и делает код более читаемым и понятным. С помощью этого свойства вы можете определить, как различные элементы будут располагаться в сетке, используя текстовые метки для указания областей.
grid-template-areasОпределение областей:
<code><span class="hljs-selector-class">.grid</span> {
<span class="hljs-attribute">display</span>: grid;
<span class="hljs-attribute">grid-template-areas</span>:
<span class="hljs-string">"header header header"</span>
<span class="hljs-string">"sidebar content content"</span>
<span class="hljs-string">"footer footer footer"</span>;
}
</code>header, sidebar, content и footer.Синтаксис:
grid-template-areas представляет собой строку в сетке. Имена областей разделяются пробелами. Если область занимает несколько колонок, вы можете повторить имя области..:
<code><span class="hljs-attribute">grid-template-areas</span>:
<span class="hljs-string">"header header header"</span>
<span class="hljs-string">"sidebar . content"</span>
<span class="hljs-string">"footer footer footer"</span>;
</code>sidebar занимает первую колонку, а вторая колонка остается пустой.Применение именованных областей:
grid-area:
<code><span class="hljs-selector-class">.header</span> {
<span class="hljs-attribute">grid-area</span>: header;
}
<span class="hljs-selector-class">.sidebar</span> {
<span class="hljs-attribute">grid-area</span>: sidebar;
}
<span class="hljs-selector-class">.content</span> {
<span class="hljs-attribute">grid-area</span>: content;
}
<span class="hljs-selector-class">.footer</span> {
<span class="hljs-attribute">grid-area</span>: footer;
}
</code>Пример использования:
Вот полный пример, демонстрирующий использование grid-template-areas:
<code><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"grid"</span>></span>
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"header"</span>></span>Header<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"sidebar"</span>></span>Sidebar<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"content"</span>></span>Content<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
<span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"footer"</span>></span>Footer<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
<span class="hljs-tag"></<span class="hljs-name">div</span>></span>
</code><code><span class="hljs-selector-class">.grid</span> {
<span class="hljs-attribute">display</span>: grid;
<span class="hljs-attribute">grid-template-areas</span>:
<span class="hljs-string">"header header header"</span>
<span class="hljs-string">"sidebar content content"</span>
<span class="hljs-string">"footer footer footer"</span>;
<span class="hljs-attribute">gap</span>: <span class="hljs-number">10px</span>; <span class="hljs-comment">/* Пробел между ячейками */</span>
}
<span class="hljs-selector-class">.header</span> {
<span class="hljs-attribute">grid-area</span>: header;
<span class="hljs-attribute">background</span>: lightblue;
}
<span class="hljs-selector-class">.sidebar</span> {
<span class="hljs-attribute">grid-area</span>: sidebar;
<span class="hljs-attribute">background</span>: lightgreen;
}
<span class="hljs-selector-class">.content</span> {
<span class="hljs-attribute">grid-area</span>: content;
<span class="hljs-attribute">background</span>: lightcoral;
}
<span class="hljs-selector-class">.footer</span> {
<span class="hljs-attribute">grid-area</span>: footer;
<span class="hljs-attribute">background</span>: lightgoldenrodyellow;
}
</code>Использование grid-template-areas делает процесс проектирования макетов более интуитивным и визуально понятным. Это особенно полезно при работе с отзывчивыми дизайнами, где вы можете легко изменять расположение элементов, просто изменяя текстовые метки.
| Пн | Вт | Ср | Чт | Пт | Сб | Вс |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |