Именованные grid-линии

Именованные grid-линии

Coursme
8 мин.
17 янв. 2024

Одним из интересных и мощных аспектов Grid Layout является возможность именования grid-линий. Это позволяет более точно и четко определять расположение элементов в сетке, делая код более читаемым и поддерживаемым.

Основы Именованных Grid-линий

Для того чтобы присвоить имена линиям грида, мы заключаем их в квадратные скобки, а между названиями указываем ширину столбца или высоту строки, которые находятся между этими линиями. Давайте рассмотрим базовый пример:

.grid-container {
   display: grid;
   grid-template-columns:
       [col1start] 1fr [col1end] 10px
       [col2start] 1fr [col2end] 10px
       [col3start] 1fr [col3end];
   grid-template-rows: [row1start] 1fr [row1end] 10px [row2start] 1fr [row2end];
}

Здесь мы определяем три столбца и три строки, каждый с указанным именем. Передавая эти имена в свойства grid-column и grid-row, мы можем точно указать, где должен располагаться каждый элемент.

Практические Примеры

Давайте рассмотрим практические примеры использования именованных grid-линий для создания макетов страниц.

Пример 1: Разделение по столбцам и строкам

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Named Grid Lines Example 1</title>
    <style>
        /* CSS styles from the first example */
        /* ... */
    </style>
</head>
<body>
    <div class="grid-container">
        <div class="grid-item special-item"></div>
        <div class="grid-item item1"></div>
        <div class="grid-item item2"></div>
        <div class="grid-item item3"></div>
        <div class="grid-item item4"></div>
    </div>
</body>
</html>

В этом примере мы создаем элементы, располагая их между определенными именованными линиями.

Пример 2: Макет Страницы с Шапкой и Сайдбаром

<!doctype html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta
            name="viewport"
            content="width=device-width"
        />
        <title>Grid Layout в CSS3</title>
        <style>
            * {
                box-sizing: border-box;
            }
            html,
            body {
                padding: 0;
                margin: 0;
            }

            .grid-container {
                display: grid;
                height: 100vh;
                grid-template-rows: 6em 10px 1fr;
                grid-template-columns: [mainstart] 1fr [mainend] 10px [sidebarestart] 25% [sidebarend];
            }

            .grid-item-content {
                background-color: #455a64;
                grid-row: 3 / 4;
                grid-column: mainstart / mainend;
            }

            .grid-item-sidebar {
                background-color: #37474f;
                grid-row: 3 / 4;
                grid-column: sidebarestart / sidebarend;
            }

            .grid-item-header {
                background-color: #263238;
                grid-row: 1 / 2;
                grid-column: mainstart / sidebarend;
            }

            .grid-item {
                color: #fff;
                text-align: center;
            }
        </style>
    </head>
    <body>
        <main class="grid-container">
            <header class="grid-item grid-item-header">
                <h1>Header</h1>
            </header>

            <article class="grid-item grid-item-content">
                <h1>Main Content</h1>
            </article>

            <aside class="grid-item grid-item-sidebar">
                <h1>Sidebar</h1>
            </aside>
        </main>
    </body>
</html>

В этом примере мы создаем макет страницы с шапкой, основным контентом и сайдбаром, используя именованные grid-линии для четкого распределения.

Заключение

Именованные grid-линии в CSS3 предоставляют удобный способ создания сложных и красочных макетов страниц. Используя их вместе с Grid Layout, вы можете достичь точного и гибкого позиционирования элементов, сделав ваш код более чистым и легким для понимания. Попробуйте применить эти знания в своих проектах и наслаждайтесь результатами!

Назад
Следующий урок
Комментарии
Чтобы оставлять комментарии — надо авторизоваться
Комментариев еще нет
Будьте первым
Главная
Кабинет
Курсы
Меню