Unatka.ru

Раздел: Создание сайта html. Практика

Глава: css

CSS Grid. Родительский элемент. Основные свойства раскладки

css Grid ( CSS Grid Layout ) на сегодня применим в Chrome, Opera, Firefox, Edge, Safari, браузер Android, Яндекс. . В IE применение ограничено, в Opera Mini не применяется, также, как в некоторых других, менее популярных (рис. 1). 

css Grid применение в браузерах
рис. 1. Применение свойства браузерами согласно данных сайта caniuse

CSS Grid кардинально отличается от Flexbox. Больше всего Grid похож на модульную сетку. Представьте себе лист бумаги, разделенный на квадраты и прямоугольники, каждый из которых содержит отдельный блок (рис. 2). 

Общий вид начала раскладки css Grid
рис. 2. Предварительная раскладка материалов.

Можно устанавливать размеры не только основных элементов, но и пробельных шагов. CSS Grid предлагается использовать для макетов больших размеров, например, страница. Тогда как Flexbox лучше применять для элементов внутри страницы. 

Свойства есть как для родительского элемента, так и для дочерних. Родительским элементом будет некий контейнер, дочерними — элементы. Элементы вложены в контейнер. Например (рис. 3), применим свойство Grid к виду страницы, показанному на рис. 2.

css Grid термины
рис. 3. Свойство Grid на примере.

Определимся с терминами. 

  • Контейнер сетки (контейнер) — родительский элемент. 
  • Линии сетки (горизонтальная и вертикальная) — линии, которые определяют структуру сетки.
  • Ячейка сетки — пространство между соседними горизонтальными и соседними вертикальными линиями.
  • Трек — пространство между двумя соседними линиями, горизонтальными или вертикальными.

Основные свойства css Grid

display:

display: grid;  - 

- означает, что контейнер будет использовать свойство grid по умолчанию, как простую сетку;

Свойства column, float, clear, vertical-align к раскладке не применимы.

grid-template-columns

Определяет колонки сетки. Указываются размеры треков через пробел. Трек — расстояние между двумя соседними линиями. Здесь — между двумя вертикальными линиями.

grid-template-rows 

Определяет строки сетки. Указывается расстояние между двумя соседними горизонтальными линиями.

Например, для рис. 3 определим длину элемента первой строки в 30% и высоту 1-й и 3-й строки как 10em, высоту 2-й как 5em.

Вид:

Свойство Grid

1
2
.examplegrid {display : grid;}
4
5
6
7
8
9

1
.examplegrid1 {display : grid;}
3
4
repeat
6
7
8
9

1
.examplegrid2 {display : grid;}
3
4
fr
6
7
8
9

1
.examplegrid3 {display : grid;}
3
4
fr + px
6
7
column-gap
row-gap
9

Код:

<meta charset="utf-8">
<style>
 .examplegrid, 
 .examplegrid1, 
 .examplegrid2, 
 .examplegrid3  {
    border: dotted 1px red;
    font-size: 12px;
    text-align: center;
  } 

 .examplegrid  {
    display : grid;
    grid-template-columns: 30% 30%  30%;
    grid-template-rows: 10em 5em 10em; 
  } 

 .examplegrid1  {
    display : grid;
    grid-template-columns: repeat(2,40%) auto;
    grid-template-rows: 10em 5em 10em; 
  }

 .examplegrid2  {
    display : grid;
    grid-template-columns: 1fr 2fr  3fr;
    grid-template-rows: 10em 5em 10em; 
  }

 .examplegrid3  {
    display : grid;
    grid-template-columns: 2fr 250px  1fr;
    grid-template-rows: 10em 5em 10em; 
    grid-column-gap: 10px;
    grid-row-gap: 5px;
  } 

 .examplegrid div, 
 .examplegrid1 div, 
 .examplegrid2 div, 
 .examplegrid3 div {
    border: dotted 2px green;    
  }
 
</style>

<h4>Свойство Grid</h4>

  <div class="examplegrid">

    <div>
      <strong>1</strong>
    </div>

    <div>
      <strong>2</strong>
    </div>

    <div>
      <code>
        .examplegrid {display : grid;}
      </code>
    </div>

    <div>4</div>
    <div>5</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
    <div>9</div>

  </div>
    <br>
  <div class="examplegrid1">

    <div>
      <strong>1</strong>
    </div>

    <div>
      <strong> 
        <code>
          .examplegrid1 {display : grid;} 
        </code>
      </strong>
    </div>

    <div>3</div>
    <div>4</div>
    <div>repeat</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
    <div>9</div>

  </div>
    <br>

  <div class="examplegrid2">

    <div>
      <strong>1</strong>
    </div>

    <div>
      <strong> 
        <code>
          .examplegrid2 {display : grid;} 
        </code>
      </strong>
    </div>

    <div>3</div>
    <div>4</div>
    <div>fr</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
    <div>9</div>

  </div>
    <br>
  <div class="examplegrid3">

    <div>
      <strong>1</strong>
    </div>

    <div>
      <strong> 
        <code>
          .examplegrid3 {display : grid;} 
        </code>
      </strong>
    </div>
    <div>3</div>
    <div>4</div>
    <div>fr + px</div>
    <div>6</div>
    <div>7</div>
    <div>
      column-gap<br>row-gap
    </div>
    <div>9</div>

  </div>

Когда размер трека повторяется, можно использовать repeat. Указываем repeat, затем в скобках количество и размер повторяющихся элементов через запятую. Например, repeat(2, 30em).

Также можно использовать единицу fr. Она означает свободное пространство. Эта единица подобна auto. Через fr мы можем разделить все пространство между крайними линиями на пропорциональные части.

Если какой-то трек имеет конкретное значение, остальное пространство можно распределить через единицу fr. 

grid - column - gap; grid - row - gap;

Позволяет установить пробельные шаги — расстояние между ячейками - как по горизонтали, так и по вертикали.

grid - column - gap устанавливает пробельный шаг по вертикали;

grid - row - gap устанавливает пробельный шаг по горизонтали.

Можно использовать сокращенное свойство grid - gap. Указывается расстояние 

по горизонтали и вертикали через пробел:

grid - gap: grid - row - gap grid - column - gap; 

grid - gap: 5px 8px; 

Если указать только одно свойство , а второе свойство не указывать, grid - row — gap и grid - column — gap будут равны.

grid - gap: 5px ; 

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

Опубликовано впервые: 2024-10-06

Хочу оставить комментарий
X

Политика ...обработки ПД веб-сайта unatka.ru и его поддоменов



Посмотреть комментарии

Назад ◄ к стр. Flex css

Вперед ► к стр. CSS Grid. Родительский элемент. Свойства, имеющие отношение к содержимому контейнера

Комментариев пока нет

Этот сайт использует сервис веб-аналитики Яндекс Метрика, предоставляемый компанией ООО «ЯНДЕКС».

Чтобы сохранить конфиденциальность персональных данных, Условия использования сервиса Яндекс Метрика запрещают передавать идентификационную информацию в Метрику.

Подробнее