Π Π°Π·Π½ΠΎΠ΅

Grid c: Ѐишки XAML-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°: динамичСский Grid / Π₯Π°Π±Ρ€

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

WPF | Grid

Grid

ПослСднСС обновлСниС: 16.01.2016

Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. Он содСрТит столбцы ΠΈ строки, количСство ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.
Для опрСдСлСния строк ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ свойство RowDefinitions, Π° для опрСдСлСния столбцов — свойство ColumnDefinitions:


<Grid.RowDefinitions>
    <RowDefinition></RowDefinition>
    <RowDefinition></RowDefinition>
    <RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
    <ColumnDefinition></ColumnDefinition>
    <ColumnDefinition></ColumnDefinition>
    <ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>

КаТдая строка задаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ элСмСнта RowDefinition, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Π³. ΠŸΡ€ΠΈ этом Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρƒ нас ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π³Ρ€ΠΈΠ΄Π΅ 3 строки.

КаТдая столбСц задаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ элСмСнта ColumnDefinition. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, здСсь ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ 3 столбца. ВО Π΅ΡΡ‚ΡŒ Π² ΠΈΡ‚ΠΎΠ³Π΅
Ρƒ нас получится Ρ‚Π°Π±Π»ΠΈΡ†Π° 3Ρ…3.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ элСмСнта управлСния с привязкой ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ячСйкС Grid, Π² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅ элСмСнта Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ значСния свойств Grid.Column ΠΈ
Grid.Row, Ρ‚Π΅ΠΌ самым указывая, Π² ΠΊΠ°ΠΊΠΎΠΌ столбцС ΠΈ строкС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ элСмСнт.
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π°ΡΡ‚ΡΠ½ΡƒΡ‚ΡŒ элСмСнт управлСния Π½Π° нСсколько строк ΠΈΠ»ΠΈ столбцов, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ свойства Grid.ColumnSpan ΠΈ Grid.RowSpan, ΠΊΠ°ΠΊ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:


<Window x:Class="LayoutApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:LayoutApp"
        mc:Ignorable="d"
        Title="Grid">
    <Grid ShowGridLines="True">
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Button Grid.Column="0" Grid.Row="0" Content="Π‘Ρ‚Ρ€ΠΎΠΊΠ° 0 Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 0"  />
        <Button Grid.Column="0" Grid.Row="1" Content="ОбъСдинСниС Ρ‚Ρ€Π΅Ρ… столбцов" Grid.ColumnSpan="3"  />
        <Button Grid.Column="2" Grid.Row="2" Content="Π‘Ρ‚Ρ€ΠΎΠΊΠ° 2 Π‘Ρ‚ΠΎΠ»Π±Π΅Ρ† 2"  />
    </Grid>
</Window>

Атрибут ShowGridLines="True" Ρƒ элСмСнта Grid Π·Π°Π΄Π°Π΅Ρ‚ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ сСтки, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ False.

Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρƒ нас получится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°:

Установка Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²

Но Ссли Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ случаС Ρƒ нас строки ΠΈ столбцы Π±Ρ‹Π»ΠΈ Ρ€Π°Π²Π½Ρ‹ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΡ… Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ столбцы ΠΏΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅, Π° строки — ΠΏΠΎ высотС.
Π•ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² настройки Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

АвтоматичСскиС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹

Π—Π΄Π΅ΡΡŒ столбСц ΠΈΠ»ΠΈ строка Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎ мСсто, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎ


<ColumnDefinition />
<RowDefinition />
ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС высота ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ…, нСзависимых ΠΎΡ‚ устройства:


<ColumnDefinition />
<RowDefinition />

Π’Π°ΠΊΠΆΠ΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π² пиксСлях, Π΄ΡŽΠΉΠΌΠ°Ρ…, сантимСтрах ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…:

пиксСли

px

Π΄ΡŽΠΉΠΌΡ‹

in

сантимСтры

cm

Ρ‚ΠΎΡ‡ΠΊΠΈ

pt

НапримСр,


<ColumnDefinition />
<RowDefinition />
ΠŸΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹.

НапримСр, Π½ΠΈΠΆΠ΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π΄Π²Π° столбца, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΡŒ ΠΎΡ‚ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ:


<ColumnDefinition />
<ColumnDefinition />

Если строка ΠΈΠ»ΠΈ столбСц ΠΈΠΌΠ΅Π΅Ρ‚ высоту, Ρ€Π°Π²Π½ΡƒΡŽ *, Ρ‚ΠΎ данная строка ΠΈΠ»ΠΈ столбцС Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ всС ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ мСсто. Если Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько
сток ΠΈΠ»ΠΈ столбцов, высота ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π²Π½Π° *, Ρ‚ΠΎ всС доступноС мСсто дСлится ΠΏΠΎΡ€ΠΎΠ²Π½Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ всСми Ρ‚Π°ΠΊΠΈΠΌΠΈ сроками ΠΈ столбцами. ИспользованиС
коэффициСнтов (0.25*) позволяСт ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ мСсто Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ коэффициСнт. ΠŸΡ€ΠΈ этом всС коэффициСнты ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ (коэффициСнт * Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ 1*) ΠΈ Π·Π°Ρ‚Π΅ΠΌ всС пространство дСлится
Π½Π° сумму коэффициСнтов.

НапримСр, Ссли Ρƒ нас Ρ‚Ρ€ΠΈ столбца:


<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />

Π’ этом случаС сумма коэффициСнтов Ρ€Π°Π²Π½Π° 1* + 0.5* + 1.5* = 3*. Если Ρƒ нас Π³Ρ€ΠΈΠ΄ ΠΈΠΌΠ΅Π΅Ρ‚ ΡˆΠΈΡ€ΠΈΠ½Ρƒ 300 Π΅Π΄ΠΈΠ½ΠΈΡ†, Ρ‚ΠΎ для коэфициСнт 1* Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ пространству
300 / 3 = 100 Π΅Π΄ΠΈΠ½ΠΈΡ†. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ столбСц Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π² 100 Π΅Π΄ΠΈΠ½ΠΈΡ†, Π²Ρ‚ΠΎΡ€ΠΎΠΉ — 100*0.5=50 Π΅Π΄ΠΈΠ½ΠΈΡ†, Π° Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ — 100 * 1.5 = 150 Π΅Π΄ΠΈΠ½ΠΈΡ†.

МоТно ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ‚ΠΈΠΏΡ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ². Π’ этом случаС ΠΎΡ‚ ΡˆΠΈΡ€ΠΈΠ½Ρ‹/высоты Π³Ρ€ΠΈΠ΄Π° отнимаСтся ΡˆΠΈΡ€ΠΈΠ½Π°/высота столбцов/строк с Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ автоматичСскими Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ, ΠΈ
Π·Π°Ρ‚Π΅ΠΌ ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ мСсто распрСдСляСтся ΠΌΠ΅ΠΆΠ΄Ρƒ столбцами/строками с ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ:

UniformGrid

АналогичСн ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ Grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ UniformGrid, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² этом случаС всС столбцы ΠΈ строки ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ синтаксис для ΠΈΡ… опрСдСлСния:


<UniformGrid Rows="2" Columns="2">
    <Button Content="Left Top" />
    <Button Content="Right Top" />
    <Button Content="Left Bottom" />
    <Button Content="Right Bottom" />
</UniformGrid>

CSS Grid понятно для всСх / Π₯Π°Π±Ρ€

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Grid?

Grid прСдставляСт собой ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π°Π±ΠΎΡ€ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ β€” ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ€ опрСдСляСт столбцы, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² сСтку, соотвСтствСнно строкам ΠΈ столбцам.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ

Π’ 2020 Π³ΠΎΠ΄Ρƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ достигаСт 94 %

Grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

ΠœΡ‹ создаСм grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, объявляя display: grid ΠΈΠ»ΠΈ display: inline-grid Π½Π° элСмСнтС. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ это сдСлаСм, всС прямыС Π΄Π΅Ρ‚ΠΈ этого элСмСнта станут элСмСнтами сСтки.

<body>
 <div>
  <div>
   <h2>Header</h2>
  </div>
  <div>
   <h2>Navbar</h2>
  </div>
  <div>
   <h2>Article</h2>
  </div>
  <div>
   <h2>Ads</h2>
  </div>
 </div>
</body>
.row {
 display: grid;
 margin: auto;
 grid-template-rows: 60px 1fr ;
 grid-template-columns: 20% 1fr 15%;
 grid-gap: 10px;
 width: 1000px;
 height: 1000px;
 justify-items: center;
 justify-content: space-between;
 grid-template-areas:
 "header header header"
 "nav article ads"; 
}

grid-template-rows β€” это CSS свойство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ опрСдСляСт названия Π»ΠΈΠ½ΠΈΠΉ ΠΈ ΠΏΡƒΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ grid rows.

CSS свойство grid-row опрСдСляСт с ΠΊΠ°ΠΊΠΎΠΉ строки Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π΅ сСтки Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ элСмСнт, сколько строк Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ элСмСнт, ΠΈΠ»ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ строкС Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ элСмСнт Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π΅ сСтки. ЯвляСтся сокращСнным свойством для свойств grid-row-start ΠΈ grid-row-end.

Бвойство CSS grid-gap являСтся сокращСнным свойством для grid-row-gap ΠΈ grid-column-gap, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΆΠ΅Π»ΠΎΠ±Π° ΠΌΠ΅ΠΆΠ΄Ρƒ строками ΠΈ столбцами сСтки.

Бвойство grid-template-areas опрСдСляСт шаблон сСтки ΡΡΡ‹Π»Π°ΡΡΡŒ Π½Π° ΠΈΠΌΠ΅Π½Π° областСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства grid-area.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ названия области ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ содСрТимоС ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ эти ячСйки. Π’ΠΎΡ‡ΠΊΠ° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ ячСйку. Π‘Π°ΠΌ синтаксис прСдоставляСт Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ структуры сСтки.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства grid-area ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих областСй своС собствСнноС имя. ИмСнованиС областСй Π΅Ρ‰Π΅ Π½Π΅ создаСт Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ области, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π² Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

.header{
grid-area: header;
}
.nav{
grid-area: nav;
}
.article{
grid-area: article;
}
.ads{
grid-area: ads;
}

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ шаблон сайта с CSS Grid:

ИзмСняСм шаблон

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ шаблон просто пСрСраспрСдСлив Π³Ρ€ΠΈΠ΄-области Π² grid-template-areas.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли ΠΌΡ‹ смСним Π½Π° это:

grid-template-areas:
 "nav header header"
 "nav article ads"; 
}

Π’ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Π°ΠΊΠΎΠΉ шаблон:

Π“Ρ€ΠΈΠ΄Ρ‹ с ΠΌΠ΅Π΄ΠΈΠ° запросами

Одной ΠΈΠ· ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… сторон Π³Ρ€ΠΈΠ΄ΠΎΠ² являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ шаблон Π·Π° сСкунды.

Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ CSS Grid ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ для ΠΌΠ΅Π΄ΠΈΠ° запросов. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ просто ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ значСния Π² ASCII-Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ ΠΈ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΠΌΠ΅Π΄ΠΈΠ° запрос.

@media all and (max-width: 575px) {
.row {
grid-template-areas:
"header"
"article"
"ads"
"nav";
grid-template-rows: 80px 1fr 70px 1fr ;
grid-template-columns: 1fr;
}
}

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, всС Π΄Π΅Π»ΠΎ состоит Π² ΠΏΠ΅Ρ€Π΅Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² свойствС grid-template-areas.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли всСго лишь Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΡƒ CSS Grid Layout айсбСрга. Иногда слоТно ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ своим Π³Π»Π°Π·Π°ΠΌ ΠΊΠ°ΠΊΠΈΠ΅ ΡˆΡ‚ΡƒΠΊΠΈ удаСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ CSS Grid. Π­Ρ‚ΠΎ Ρ€Π°Π·Ρ€Ρ‹Π² всСх шаблонов. И ΠΌΠ½Π΅ это нравится.

Π― Π²Π°ΠΌ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ своСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π΅Π΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π²Π°ΠΌ это Ρ‚ΠΎΡ‡Π½ΠΎ пригодится ΠΈ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π²Ρ‹ Π½Π° React, Angular, Vue (Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ своС). Grid’ы ΠΏΡ€ΠΈΡˆΠ»ΠΈ Π½Π°Π΄ΠΎΠ»Π³ΠΎ.

ПониманиС CSS Grid (3 Ρ‡Π°ΡΡ‚ΡŒ): Grid-области / Π₯Π°Π±Ρ€

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«Understanding CSS Grid: Grid Template AreasΒ» Π°Π²Ρ‚ΠΎΡ€Π° Rachel Andrew

ΠŸΡ€ΠΈ использовании CSS Grid, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ элСмСнты Π½Π° сСткС, указывая Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ grid-Π»ΠΈΠ½ΠΈΠΈ. Однако, сущСствуСт ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π±ΠΎΠ»Π΅Π΅ наглядный способ описания Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свойство grid-template-areas для размСщСния элСмСнтов Π½Π° сСткС ΠΈ выясним, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π‘Ρ‚Π°Ρ‚ΡŒΠΈ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ сСрии:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°

Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ статСй, Ρ‚Π°ΠΊ ΠΈ руководств ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ CSS Grid. Но ΠΏΠΎΡ€ΠΎΠΉ Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… Rachel Andrew доступно ΠΎΡΠ²Π΅Ρ‰Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… руководствах удСляСтся нСдостаточно внимания.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ стоит Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ лишь ΠΊΠ°ΠΊ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Ρƒ Ρ‚ΠΎΡ‡ΠΊΡƒ зрСния Π½Π° ΡƒΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ·Π²Π΅ΡΡ‚Π½ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ

ОписаниС Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства 'grid-template-areas'

Бвойство grid-template-areas ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² Π²ΠΈΠ΄Π΅ значСния ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько строк. КаТдая строка (Π·Π°ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Π°Ρ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ) прСдставляСт строку сСтки. Бвойство grid-template-areas ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² сСткС, которая ΡƒΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ grid-template-rows ΠΈ grid-template-columns, Π»ΠΈΠ±ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ вСсь ΠΌΠ°ΠΊΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π³ΠΎ, Π½ΠΎ Π² этом случаС высота всСх строк Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ автоматичСски.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ описываСтся сСтка с Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ областями – каТдая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹Ρ… ΠΈ Π΄Π²Π° строковых Ρ‚Ρ€Π΅ΠΊΠ°. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° области задаётся ΠΏΡƒΡ‚Ρ‘ΠΌ указания Π΅Ρ‘ названия Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйкС, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ:

grid-template-areas: "one one two two"
                     "one one two two"
                     "three three four four"
                     "three three four four";

Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ элСмСнтов Π½Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅ΠΉΡΡ сСткС осущСствляСтся ΠΏΡƒΡ‚Ρ‘ΠΌ присвоСния свойству grid-area ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ названия области, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π½ΡΡ‚ΡŒ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнт с классом test Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ сСтки one, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ CSS:

.test {
  grid-area: one;
}

Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ это Π² дСйствии ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ CodePen, Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅. Π£ мСня Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ элСмСнта (с классами ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ…), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ grid-областям с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства `grid-area’ ΠΈ поэтому ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° сСткС Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅.

Если Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Grid-инспСктором Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Firefox, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ названия областСй ΠΈ Π»ΠΈΠ½ΠΈΠΈ сСтки, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π΅ строки ΠΈ Π΄Π²Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ – ΠΈ всё это Π±Π΅Π· нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов ΠΏΠΎ линиям сСтки.

ΠŸΡ€Π°Π²ΠΈΠ»Π° использования 'grid-template-areas'

Π£ Π΄Π°Π½Π½ΠΎΠ³ΠΎ способа описания раскладки сущСствуСт нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ». Π˜Ρ… нСсоблюдСниС ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ сСтку.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ β„–1: ΠžΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ всю сСтку

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ свойства Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ всю сСтку, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° каТдая Π΅Ρ‘ ячСйка.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ячСйку пустой, просто ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ вмСсто названия ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ, Π½Π΅ раздСляя ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ ('.' ΠΈΠ»ΠΈ '...').

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли я измСню Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства grid-template-areas Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

grid-template-areas: "one one two two"
                     "one one two two"
                     ".   .   four four"
                     "three three four four";

Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π½Π΅Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ ячСйки. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ «three» отобраТаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² послСднСй строкС сСтки.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ β„–2: Одно имя – ΠΎΠ΄Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ

ΠžΠ±Π»Π°ΡΡ‚ΡŒ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ допускаСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ содСрТимоС сразу Π² нСсколько мСст Π½Π° сСткС, Π·Π°Π΄Π°Π² для Ρ€Π°Π·Π½Ρ‹Ρ… областСй ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ имя. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ свойство ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ three:

grid-template-areas: "one one three three"
                     "one one two two"
                     "three three four four"
                     "three three four four";

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ β„–3: Волько ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ области

НСльзя ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ области, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄Π°Π½Π½ΠΎΠ΅ свойство нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания ‘L’ ΠΈΠ»ΠΈ ‘T’-ΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… областСй – это Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ всё свойство Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΅Π³ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ:

grid-template-areas: "one one two two"
                     "one one one one"
                     "three three four four"
                     "three three four four";

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ строк

МнС нравится ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства grid-template-areas Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅, Π³Π΄Π΅ каТдая строка прСдставляСт строковый Ρ‚Ρ€Π΅ΠΊ сСтки. Π­Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΠΌΠ°ΠΊΠ΅Ρ‚.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ отступы ΠΌΠ΅ΠΆΠ΄Ρƒ ячСйками, Π° пустыС ячСйки ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ нСсколькими Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я вставила Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Ρƒ ячССк с ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΈ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ для пустых ячССк, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈΡΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строки, Π½ΠΎ ΠΈ столбцы:

grid-template-areas: "one   one   two  two"
                     "one   one   two  two"
                     "....  ....  four four"
                     "three three four four";

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²ΠΏΠΎΠ»Π½Π΅ допустимой являСтся ΠΈ запись всСх строк Π² ΠΎΠ΄Π½Ρƒ линию, ΠΊΠ°ΠΊ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

grid-template-areas: "one one two two" "one one two two" "three three four four" "three three four four";

ОбъяснСниС свойств 'grid-template-areas' ΠΈ 'grid-area'

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ каТдая ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ размСщСния элСмСнтов ΠΏΠΎ grid-линиям. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΡ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ воспроизвСсти с использованиСм grid-Π»ΠΈΠ½ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² CodePen Π½ΠΈΠΆΠ΅. Π’ Π½Ρ‘ΠΌ я создала сСтку Ρ‚Π΅ΠΌ ΠΆΠ΅ способом, Ρ‡Ρ‚ΠΎ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅. Но Π² этот Ρ€Π°Π· для размСщСния элСмСнтов я использовала grid-Π»ΠΈΠ½ΠΈΠΈ, добавляя свойства grid-column-start, grid-column-end, grid-row-start ΠΈ grid-row-end.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ссли Π²Ρ‹ ΠΏΡ€ΠΎΡ‡Ρ‚Ρ‘Ρ‚Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ сСрии «ПониманиС CSS Grid (2 Ρ‡Π°ΡΡ‚ΡŒ): Grid-Π›ΠΈΠ½ΠΈΠΈΒ», Ρ‚ΠΎ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сокращённого свойства grid-area ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ всС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ свойствС.

Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ этот ΠΆΠ΅ ΠΌΠ°ΠΊΠ΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ сокращённоС свойство с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ Π»ΠΈΠ½ΠΈΠΉ, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ порядкС:

  • grid-row-start
  • grid-column-start
  • grid-row-end
  • grid-column-end
.one {
  grid-area: 1 / 1 / 3 / 3;
}

.two {
  grid-area: 1 / 3 / 3 / 5;
}

.three {
  grid-area: 3 / 1 / 5 / 3;
}

.four {
  grid-area: 3 / 3 / 5 / 5;
}

Бвойство grid-area интСрСсно Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½ΠΎΠΌΠ΅Ρ€Π° Π»ΠΈΠ½ΠΈΠΉ, Ρ‚Π°ΠΊ ΠΈ ΠΈΡ… ΠΈΠΌΠ΅Π½Π°.

ИспользованиС 'grid-area' с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ Π»ΠΈΠ½ΠΈΠΉ

Если Π² свойствС grid-area ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½ΠΎΠΌΠ΅Ρ€Π° Π»ΠΈΠ½ΠΈΠΉ, Ρ‚ΠΎ Π»ΠΈΠ½ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² порядкС, описанном Π²Ρ‹ΡˆΠ΅.

Если ΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ свойствС Π²Ρ‹ пропускаСтС ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°, ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ auto, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ‚Ρ€Π΅ΠΊ (Ρ‡Ρ‚ΠΎ являСтся ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ CSS задаст элСмСнту свойство grid-row-start: 3, Π° значСния ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… свойств позиционирования установит Π½Π° auto. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, элСмСнт Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½ Π½Π° 3 строковой Π»ΠΈΠ½ΠΈΠΈ, Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ доступном ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠΌ Ρ‚Ρ€Π΅ΠΊΠ΅, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ строковый Ρ‚Ρ€Π΅ΠΊ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½Ρ‹ΠΉ Ρ‚Ρ€Π΅ΠΊ.

grid-area: 3;

ИспользованиС 'grid-area' с имСнами линий

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ Π² Grid-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅ называСтся имСнованная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ), Ρ‚ΠΎ свойство grid-area Ρ‚Π°ΠΊΠΆΠ΅ допускаСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π»ΠΈΠ½ΠΈΠΈ. Если Ρƒ вашСй сСтки Π΅ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΠ°ΠΊ описано Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ сСрии, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π»ΠΈΠ½ΠΈΠΉ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΈΡ… Π½ΠΎΠΌΠ΅Ρ€Π°.

Но Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΠΌΠ΅Π½Π° Π»ΠΈΠ½ΠΈΠΉ, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΈΡ… пропускС для свойства grid-area отличаСтся ΠΎΡ‚ повСдСния ΠΏΡ€ΠΈ использовании Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ².

НиТС я создала сСтку с ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ линиями ΠΈ использовала grid-area для размСщСния элСмСнта (опустив послСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅):

.grid {
  display: grid;
  grid-template-columns:
      [one-start three-start] 1fr 1fr
      [one-end three-end two-start four-start] 1fr 1fr [two-end four-end];
  grid-template-rows:
    [one-start two-start] 100px 100px
    [one-end two-end three-start four-start] 100px 100px [three-end four-end];;
}

.two {
  grid-area: two-start / two-start / two-end;
}

Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ имя Π»ΠΈΠ½ΠΈΠΈ для свойства grid-column-end. Π’ спСцификации говорится, Ρ‡Ρ‚ΠΎ Π² этой ситуации свойство grid-column-end Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ свойства grid-column-start. Если значСния этих Π΄Π²ΡƒΡ… свойств ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, Ρ‚ΠΎ конСчная строка отбрасываСтся ΠΈ, ΠΏΠΎ сути, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ устанавливаСтся Π½Π° auto, поэтому элСмСнт Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Ρ‚Ρ€Π΅ΠΊ, ΠΊΠ°ΠΊ ΠΈ Π² случаС с использованиСм Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π»ΠΈΠ½ΠΈΠΉ.

Π’ΠΎ ΠΆΠ΅ самоС происходит, Ссли ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства grid-row-end. Оно ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ grid-row-start ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, становится auto.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ CodePen-ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΎΠ΅ количСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для свойства grid-area влияСт Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ элСмСнта:

Π­Ρ‚ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ свойство grid-area Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с СдинствСнным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ области.

Когда ΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства grid-template-areas создаём ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎ краям ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ‚ΠΎ ΠΆΠ΅ имя, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ области. Π’ нашСм случаС ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнт Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Ρ€Π°Π½Π΅Π΅ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, ΡƒΠΊΠ°Π·Π°Π² Π΅Ρ‘ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ для свойств позиционирования ΠΏΠΎ линиям:

.one {
  grid-row-start: one;
  grid-row-end: one;
  grid-column-start: one;
  grid-row-end: one;
}

Если имя области назначаСтся свойству стартовой Π»ΠΈΠ½ΠΈΠΈ (-start), Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ строки. Если ΠΆΠ΅ имя области назначаСтся свойству ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ строки (-end), – это соотвСтствСнно ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ† ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΈΠ»ΠΈ строки.

Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Π΄Π°Ρ‘ΠΌ grid-area: one, ΠΌΡ‹ пропускаСм послСдниС Ρ‚Ρ€ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ свойства сокращённой записи. ВсС ΠΎΠ½ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π±ΡƒΠ΄ΡƒΡ‚ скопированы ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ значСния – Π² нашСм случаС ΠΏΡ€ΠΈΠΌΡƒΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ one, Π° элСмСнт размСстится ΠΊΠ°ΠΊ Π² случаС с использованиСм ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… свойств.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π² Grid-Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, достаточно ΡƒΠΌΠ½Ρ‹ΠΉ ΠΈ позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ интСрСсныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я описала Π² ΠΌΠΎΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… «ИмСнованиС Π² CSS GridΒ» ΠΈ Β«Editorial Design Patterns With CSS Grid And Named ColumnsΒ».

НалоТСниС элСмСнтов ΠΏΡ€ΠΈ использовании 'grid-template-areas'

ΠŸΡ€ΠΈ использовании свойства grid-template-areas, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ имя ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ячСйкС. Однако, послС построСния ΠΌΠ°ΠΊΠ΅Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого свойства, Ρƒ вас остаётся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½Π° сСтку Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½ΠΎΠΌΠ΅Ρ€Π° строк.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ CodePen-ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ я Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт ΠΈ располоТила Π΅Π³ΠΎ Π½Π°Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ элСмСнтами сСтки, указывая grid-Π»ΠΈΠ½ΠΈΠΈ.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π»ΠΈΠ½ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ создании ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ строк. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ доступны названия Π»ΠΈΠ½ΠΈΠΉ, созданныС ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ областСй. ΠœΡ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ названия для ΠΎΠ΄Π½ΠΎΠΉ области Π΄Π°Ρ‘Ρ‚ ΠΈΠΌΠ΅Π½Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘ΠΌ линиям ΠΏΠΎ краям этой области. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ линию Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΈ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ области с суффиксами -start ΠΈ -end, добавляСмыми соотвСтствСнно ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, grid-ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, имСнуСмая one, ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ линию, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡƒΡŽ one-start ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ линию, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡƒΡŽ one-end.

Π’Π°ΠΊΠΆΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти нСявныС ΠΈΠΌΠ΅Π½Π° Π»ΠΈΠ½ΠΈΠΉ для размСщСния элСмСнта Π½Π° сСткС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, Ссли Π²Ρ‹ пСрСстраиваСтС сСтку Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ Π½Π° сСткС элСмСнт всСгда начинался с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ.

ИспользованиС 'grid-template-areas' Π² Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅

Π― часто Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с созданиСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ Π²ΠΈΠΆΡƒ, Ρ‡Ρ‚ΠΎ использованиС grid-template-areas ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния возмоТности прямо ΠΈΠ· CSS Ρ‚ΠΎΡ‡Π½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ пСрСстроСниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… ΠΏΡƒΡ‚Ρ‘ΠΌ простого пСрСопрСдСлСния значСния свойства grid-template-areas, ΠΈΠ½ΠΎΠ³Π΄Π° Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ измСнСнию количСства доступных ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅ я ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»Π° ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΊΠ΅Ρ‚Π°. Π”Π°Π»Π΅Π΅, ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π° 600px я ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽ количСство ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства grid-template-areas, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚ с двумя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ. ΠŸΡ€ΠΈΡΡ‚Π½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ любой, ΠΊΡ‚ΠΎ посмотрит Π½Π° этот ΠΊΠΎΠ΄, смоТСт ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΠΊΠ΅Ρ‚.

.wrapper {
  background-color: #fff;
  padding: 1em;
  display: grid;
  gap: 20px;
  grid-template-areas:
    "hd"
    "bd"
    "sd"
    "ft";

}

@media (min-width: 600px) {
  .wrapper {
    grid-template-columns: 3fr 1fr;
    grid-template-areas:
      "hd hd"
      "bd sd"
      "ft ft";
  }
}

header { grid-area: hd; }
article {grid-area: bd; }
aside { grid-area: sd; }
footer { grid-area: ft; }

Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот ΠΌΠ΅Ρ‚ΠΎΠ΄, слСдуСт ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ элСмСнтов ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ситуациСй, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ порядок отобраТСния элСмСнтов Π½Π° экранС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² исходном ΠΊΠΎΠ΄Π΅. Π›ΡŽΠ±ΠΎΠΉ, ΠΊΡ‚ΠΎ взаимодСйствуСт с сайтом с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Tab ΠΈΠ»ΠΈ ΠΊΡ€ΠΎΠΌΠ΅ экрана ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈ ΠΎΠ·Π²ΡƒΡ‡ΠΈΠ²Π°Π½ΠΈΠ΅ содСрТимого, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° Π·Π°Π΄Π°Π½Π° Π² исходном ΠΊΠΎΠ΄Π΅. Если ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π½Π° экранС содСрТимоС Π½Π΅ соотвСтствуСт этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, это ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ измСнСния позиционирования элСмСнтов, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΡƒΠ±Π΅Π΄ΠΈΠ²ΡˆΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² исходном ΠΊΠΎΠ΄Π΅ соотвСтствуСт Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π½Π° экранС.

Π Π΅Π·ΡŽΠΌΠΈΡ€ΡƒΡ

БобствСнно, Π² этом ΡΡƒΡ‚ΡŒ использования свойств grid-template-areas ΠΈ grid-area ΠΏΡ€ΠΈ создании Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ. Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ использовали этот ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅. Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ способ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ ΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π΅Π³ΠΎ ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΎΠ² ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ вСрсии Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

CSS Grid Layout. Быстрый старт / Π₯Π°Π±Ρ€

ВступлСниС

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚. Π€Π΅Π²Ρ€Π°Π»ΡŒ-ΠœΠ°Ρ€Ρ‚ 2017 Π³ΠΎΠ΄Π° запомнились для ΠΌΠ½ΠΎΠ³ΠΈΡ…, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с HTML ΠΈ CSS Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² выпустили обновлСния, срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π»ΠΈ ΠΈ обновлСния для CSS. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ CSS Grid Layout Π±Π΅Π· Ρ„Π»Π°Π³ΠΎΠ² Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…: Firefox 52, Chrome 57, Opera 44, Safari 10.1. Какой ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² остался ΠΏΠΎΠ·Π°Π΄ΠΈ, Π΄ΡƒΠΌΠ°ΡŽ, Π²Ρ‹ Π΄ΠΎΠ³Π°Π΄Ρ‹Π²Π°Π΅Ρ‚Π΅ΡΡŒ. Π’ΠΎΡ‡Π½Π΅Π΅ ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ спСцификации. Но Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ этого Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π΄Π΅Π»Π°ΡŽΡ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ. Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½ΠΎΠ²ΠΎΠΉ CSS Grid Layout спСцификации β€” это самоС Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ΅ событиС Π·Π° ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ ΠΏΡΡ‚ΡŒ Π»Π΅Ρ‚. Π­Ρ‚Π° спСцификация помСняСт ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов. И это ΠΊΡ€ΡƒΡ‚ΠΎ.

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Flexible Box Layout

МногиС Π·Π°Π΄Π°ΡŽΡ‚ΡΡ вопросом: Β«Π‘Ρ‚ΠΎΠΏ, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ flexbox, Π·Π°Ρ‡Π΅ΠΌ ΠΌΠ½Π΅ Π΅Ρ‰Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ grid’ы?Β». Вопрос Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ умСстСн. CSS Grid Π½Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Flexbox ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Flexbox Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ. Из этого слСдуСт, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ flex элСмСнты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вдоль Π³Π»Π°Π²Π½ΠΎΠΉ оси ΠΈΠ»ΠΈ вдоль ΠΏΠΎΠΏΠ΅Ρ€Π΅Ρ‡Π½ΠΎΠΉ оси. ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ flex элСмСнты сразу Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… осях. CSS Grid Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π°ΠΌ позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ Π² Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠΌ пространствС ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ содСрТимоС Π² ΠΎΠ±ΠΎΠΈΡ… измСрСниях. МнС нравится ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ эту Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Tab Atkins.

Одна ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΈΠ»ΠΈ повСдСния любого Π±Π»ΠΎΠΊΠ° приходится ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ (Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв). CSS Grid позволяСт ΠΌΠ΅Π½ΡΡ‚ΡŒ располоТСниС grid элСмСнтов Π½Π΅ мСняя сам HTML. НиТС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ простой Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° Flexbox ΠΈ CSS Grid.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с CSS Grid, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с основными Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ. На основС этих Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² построСна вся спСцификация.

Grid container β€” это Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΡ…ΡΡ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… grid Π»ΠΈΠ½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСлят пространство grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π° grid области, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ grid элСмСнты. Π’Π½ΡƒΡ‚Ρ€ΠΈ grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π½Π°Π±ΠΎΡ€Π° grid Π»ΠΈΠ½ΠΈΠΉ: ΠΎΠ΄ΠΈΠ½ опрСдСляСт ось столбцов, Π΄Ρ€ΡƒΠ³ΠΎΠΉ опрСдСляСт ось строк.

Grid lines β€” это Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π­Ρ‚ΠΈ Π»ΠΈΠ½ΠΈΠΈ находятся ΠΏΠΎ ΠΎΠ±Π΅ стороны ΠΎΡ‚ столбца ΠΈΠ»ΠΈ строки. Автор ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‚ΡŒ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта имя ΠΈΠ»ΠΈ числовой индСкс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ дальшС Π² стилях. НумСрация начинаСтся с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Π’Π°ΠΆΠ½Ρ‹ΠΉ нюанс, Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт восприимчив ΠΊ Ρ€Π΅ΠΆΠΈΠΌΡƒ написания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° вашСм рСсурсС. НапримСр, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Арабский язык ΠΈΠ»ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ язык Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌ написания справа Π½Π°Π»Π΅Π²ΠΎ, Ρ‚ΠΎ нумСрация Π»ΠΈΠ½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΠΏΡ€Π°Π²ΠΎΠΉ стороны.

Grid track β€” это пространство ΠΌΠ΅ΠΆΠ΄Ρƒ двумя смСТными grid линиями, Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Grid cell β€” это наимСньшая нСдСлимая Π΅Π΄ΠΈΠ½ΠΈΡ†Π° grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ grid элСмСнтов. ΠžΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ΡΡ Π½Π° пСрСсСчСнии grid строки ΠΈ grid ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ.

Grid area β€” это пространство Π²Π½ΡƒΡ‚Ρ€ΠΈ grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ большС grid элСмСнтов. Π­Ρ‚ΠΎΡ‚ элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ grid ячССк.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт тСсно связан Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ CSS Grid ΠΌΠ°ΠΊΠ΅Ρ‚

ΠœΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с основными Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ. ΠŸΡ€ΠΈΡˆΠ»ΠΎ врСмя ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ наш ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ grid ΠΌΠ°ΠΊΠ΅Ρ‚. НичСго слоТного, ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ ΠΌΠ°ΠΊΠ΅Ρ‚ Ρ‚Ρ€ΠΈ строки Π½Π° Ρ‚Ρ€ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с основами. НиТС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.
Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΡ‹ создаСм Ρ‚Ρ€ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 150px 1fr 150px ΠΈ Ρ‚Ρ€ΠΈ строки Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 50px auto 50px соотвСтствСнно. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ значСния: 1fr, auto. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся, Ρ‡Ρ‚ΠΎ это Π·Π° значСния.

1fr β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния ввСдСнная Π² Π΄Π°Π½Π½ΠΎΠΉ спСцификации. Она Π½Π΅ измСряСтся Π² ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… измСрСния (px, em, rem, Π΄Ρ€.) Из этого слСдуСт, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ вмСстС с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ calc(). Π­Ρ‚Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ мСньшС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ значСния. Она рассчитываСтся послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ значСния, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΡ‚ fr, Π±Ρ‹Π»ΠΈ рассчитаны.

auto β€” Π²Π΅Π΄Π΅Ρ‚ сСбя довольно интСрСсно ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для расчСта Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Ρ…ΠΈΡ‚Ρ€Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ эта Π΅Π΄ΠΈΠ½ΠΈΡ†Π° измСрСния Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ fr. Но это Π½Π΅ Ρ‚Π°ΠΊ. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅, auto Π±ΡƒΠ΄Π΅Ρ‚ рассчитан Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ рассчитан fr. Об этом Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π²Ρ‹ΡˆΠ΅.

Для Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΈ строк ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°:

grid-template-columns: 150px 1fr auto;
grid-template-rows: 50px auto 50px;

БокращСнная Ρ„ΠΎΡ€ΠΌΠ° записи выглядит Ρ‚Π°ΠΊ:

grid-template: 50px auto 50px / 150px 1fr auto;

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ шаблон Π½Π° grid’ах

Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ шаблон с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ всС Π·Π½Π°ΠΊΠΎΠΌΡ‹. НичСго слоТного, шаблон Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… тэгов: header, nav, aside, article, footer. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ рСсурсов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹ΠΉ шаблон. Волько Π·Π½Π°Π΅Ρ‚Π΅, Π΄Π°ΠΆΠ΅ Π² Ρ‚Π°ΠΊΠΎΠΌ простом шаблонС Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: Β«Π― Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€, я Ρ‚Π°ΠΊ Ρ…ΠΎΡ‡Ρƒ. Π― Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, я Ρ‚Π°ΠΊ Π½Π΅ ΠΌΠΎΠ³ΡƒΒ». Π‘ появлСниСм CSS Grid Layout подобная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ Π½ΡƒΠ»ΡŽ.
Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ знакомимся Π΅Ρ‰Π΅ с нСсколькими свойствами CSS Grid Layout. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ grid-template-areas. Оно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… областСй grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ связаны с ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ grid элСмСнтом. Бинтаксис ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΌΡ‹ сразу Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠΎΠΉ шаблон получится Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ свойство grid-area. Оно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ элСмСнта grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π² ΠΊΠ°ΠΊΡƒΡŽ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ grid элСмСнт.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ grid-template-areas:

grid-template-areas: "header header"
                     "nav  main"
                     "footer ."

Один ΠΈΠ»ΠΈ большС ΠΈΠ΄ΡƒΡ‰ΠΈΡ… подряд символов . (Ρ‚ΠΎΡ‡ΠΊΠ°) ΠΈΠΌΠ΅ΡŽΡ‚ особоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если этот символ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‚ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ Π΅Π³ΠΎ ΠΎΡ‚Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ‚ ΠΊΠ°ΠΊ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ‚ΠΎΠΊΠ΅Π½, Ρ‡Ρ‚ΠΎ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: Π½Π° Π΅Π³ΠΎ мСстС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ создана имСнованная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ grid ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ Π² Π½Π΅Π΅ нСльзя ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ grid элСмСнт.

Если ΠΌΡ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ для ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Π΄ΠΎΡ‡Π΅Ρ€Π½Π΅Π³ΠΎ grid элСмСнта свойство grid-area, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ автоматичСски распрСдСлит Ρ‚Π°ΠΊΠΈΠ΅ элСмСнты. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠ· послСднСго Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹ΡˆΠ΅.

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

  1. CSS Grid Layout Module Level 1
  2. How to create a simple layout with CSS Grid Layouts
  3. Grid by Example ΠΎΡ‚ Rachel Andrew
  4. ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° рСсурсов для изучСния CSS Grid Layout ΠΎΡ‚ Jen Simmons
  5. РСсурс для изучСния Π‘SS Grid Layout ΠΎΡ‚ Mozilla
  6. Jen Simmons ΠΏΡ€ΠΎ CSS Grid CSS Grid Layout
  7. Моя ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° рСсурсов ΠΏΠΎ CSS Grid Layout
  8. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π³ΠΎΠ΄Π½Ρ‹Ρ… статСй (ΠΊΠ°ΠΊ своих авторских, Ρ‚Π°ΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ²) ΠΏΠΎ CSS Grid Layout Π½Π° css-live.ru

ВмСсто Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли всСго лишь Π²Π΅Ρ€Ρ…ΡƒΡˆΠΊΡƒ CSS Grid Layout айсбСрга. Π― Π½Π°Ρ‡Π°Π» ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° CSS Grid Layout Π΅Ρ‰Π΅ ΠΊΠΎΠ³Π΄Π° всС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈ Π·Π° Ρ„Π»Π°Π³Π°ΠΌΠΈ. Π”Π°Π½Π½Ρ‹ΠΉ тСкст Π½Π΅ способСн ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠΈ впСчатлСния ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этой спСцификациСй. Иногда слоТно ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ своим Π³Π»Π°Π·Π°ΠΌ ΠΊΠ°ΠΊΠΈΠ΅ ΡˆΡ‚ΡƒΠΊΠΈ удаСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ CSS Grid. Π­Ρ‚ΠΎ Ρ€Π°Π·Ρ€Ρ‹Π² всСх шаблонов. И ΠΌΠ½Π΅ это нравится.

Π― Π²Π°ΠΌ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ своСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π΅Π΅ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π²Π°ΠΌ это Ρ‚ΠΎΡ‡Π½ΠΎ пригодится ΠΈ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π²Ρ‹ Π½Π° React, Angular, Vue (Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ своС). Grid’ы ΠΏΡ€ΠΈΡˆΠ»ΠΈ Π½Π°Π΄ΠΎΠ»Π³ΠΎ.

НапослСдок добавлю ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ появлСниСм grid элСмСнта Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… областях.

На этом всС. Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠšΡ‚ΠΎ Π΄ΠΎΡ‡ΠΈΡ‚Π°Π» Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ спасибо.

Π’Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ CSS Grid Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚ – миссия Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΠ°

CSS Grid – это Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π²Π΅Π±-страниц. Π’ нашСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ быстро пробСТимся ΠΏΠΎ Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎ всСм Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ.

Grid Layout – основа основ Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½Π°, это Π²Π°ΠΌ любой Π²Π΅Ρ€ΡΡ‚Π°Π»ΡŒΡ‰ΠΈΠΊ скаТСт. А Π²ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ CSS Grid прСдставляСт собой простой ΠΈ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт для создания сайта. Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ это Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Bootstrap. Π’ этом Π³ΠΎΠ΄Ρƒ Ρƒ модуля Ρ‚Π°ΠΊΠΆΠ΅ появилась встроСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° популярных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ²Β (Safari, Chrome, Firefox, Edge), поэтому любой Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² любом случаС столкнСтся с этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ сСйчас ΠΈΠ»ΠΈ ΠΏΠΎΠ·ΠΆΠ΅.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅ΠΌ основныС элСмСнты. ΠŸΠΎΠ΅Ρ…Π°Π»ΠΈ!

Двумя основными ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ CSS Grid ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ° (parent) ΠΈ элСмСнты (children). ΠžΠ±Π΅Ρ€Ρ‚ΠΊΠ° – это сСтка, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ содСрТатся всС элСмСнты.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ для parent с ΡˆΠ΅ΡΡ‚ΡŒΡŽ children:

<div>
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
</div>

Π’Π΅ΠΏΠ΅Ρ€ΡŒ прСдоставляСм ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠ΅ div ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сСтки:

.wrapper {
    display: grid;
}

Π”Π°, сСйчас это Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π²ΠΈΠ΄ нашСй сСтки. Пока 6 div просто Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ Π½Π°Π΄ Π΄Ρ€ΡƒΠ³ΠΎΠΌ:

Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ стили, Π½ΠΎ ΠΏΡƒΡΡ‚ΡŒ ΠΎΠ½ΠΈ вас Π½Π΅ ΠΏΡƒΡ‚Π°ΡŽΡ‚: стили ΠΈ CSS эффСкты Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠΎΠΏΡ€ΠΈΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ с нашСй Ρ‚Π΅ΠΌΠΎΠΉ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ столбцы ΠΈ строки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ. ΠŸΡƒΡΡ‚ΡŒ это Π±ΡƒΠ΄Π΅Ρ‚ 2 строки ΠΈ 3 столбца. Для этого обратимся ΠΊ grid-template-column ΠΈ grid-template-row:

.wrapper {
    display: grid;
    grid-template-columns: 100px 100px 100px;
    grid-template-rows: 50px 50px;
}

ΠœΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρƒ grid-template-columns Ρ‚Ρ€ΠΈ значСния, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ столбцов. Аналогичная ситуация со строками: 2 значСния Π² Β grid-template-rows – это Π΄Π²Π΅ строки. Наши строки Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ячСйкам ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π² 50px, Π° столбцы – Π΄Π»ΠΈΠ½Ρƒ Π² 100px. ИмССм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ:

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ Π²Ρ‹ поняли связь Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π° нашСй сСтки. ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌΡΡ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ:

.wrapper {
    display: grid;
    grid-template-columns: 200px 50px 100px;
    grid-template-rows: 100px 30px;
}

ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ это Π² ΡƒΠΌΠ΅. Выглядит вторая Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Ρ‚Π°ΠΊ:

А Π²ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ элСмСнтов Π² сСткС – это ΡƒΠΆΠ΅ Π·Π°Π΄Π°Ρ‡Π° послоТнСС. НуТно ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ это всС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ. НапримСр, создадим сСтку 3Ρ…3, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅:

.wrapper {
    display: grid;
    grid-template-columns: 100px 100px 100px;
    grid-template-rows: 100px 100px 100px;
}

Π­Ρ‚ΠΎ создаст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°ΠΊΠ΅Ρ‚:

Π‘Π΅Π΄Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ сСтки 3Ρ…2, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ опрСдСляли Π΅Π΅ ΠΊΠ°ΠΊ 3Ρ…3. ВсС ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρƒ нас ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 6 элСмСнтов для заполнСния, поэтому Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ строку ΠΌΡ‹ попросту Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° стала Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅ 3 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнта.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ»ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты, ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΈΡ… свойствами grid-row ΠΈ grid-column:

.item1 {
    grid-column-start: 1;
    grid-column-end: 4;
}

ΠœΡ‹ выставляСм условиС, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ item1 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ ΡƒΠΆΠ΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² 4-ΠΎΠΌ столбцС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, item1 Π·Π°ΠΉΠΌΠ΅Ρ‚ всю ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку, ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ:

НавСрноС, вас Ρ‚Π΅Ρ€Π·Π°Π΅Ρ‚ вопрос, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² ΠΊΠΎΠ΄Π΅ 4 столбца, ΠΊΠΎΠ³Π΄Π° Ρƒ нас ΠΈΡ… 3? Ну Ρ‚ΡƒΡ‚ всС просто: ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π΅ ΠΎ сСрСдинС этих столбцов, Π° ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΈΡ… линиях. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ со всСми строками Π² сСткС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π²ΠΈΠ΄Π½Ρ‹. Π“Ρ€ΡƒΠ±ΠΎ говоря, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт, занявший всю строку, сдвинул ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π½ΠΈΠ·, Ρ‡Π΅ΠΌ ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ» всС Π΄Π°Π½Π½Ρ‹Π΅ Π² условии строки.

Но Π½Π° этом интСрСсныС возмоТности CSS Grid Π½Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π’ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±ΠΎΠ²Π°Ρ€ΠΈΠΌΡ‹ΠΉ синтаксис ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹ΡˆΠ΅:

.item1 {
    grid-column: 1 / 4;
}

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, насколько ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹ поняли ΡΡƒΡ‚ΡŒ Π½Π°ΡˆΠΈΡ… манипуляций с Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ. ΠŸΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΠΌ содСрТимоС:

.item1 {
    grid-column-start: 1;
    grid-column-end: 3;
}
.item3 {
    grid-row-start: 2;
    grid-row-end: 4;
}
.item4 {
    grid-column-start: 2;
    grid-column-end: 4;
}

И Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π² ΠΈΡ‚ΠΎΠ³Π΅. ΠŸΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ сдСлали сСтку Ρ‚Π°ΠΊΠΎΠΉ:

Π’ΠΎΡ‚ ΠΈ всС основныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Grid Layout Π² CSS!

CSS-сСтка


Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ

МСню

Основной

ΠŸΡ€Π°Π²Π°Ρ

НиТний ΠΊΠΎΠ»ΠΎΠ½Ρ‚ΠΈΡ‚ΡƒΠ»

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


Π‘Π΅Ρ‚ΠΊΠ°

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚Π° сСтки CSS ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ систСму ΠΌΠ°ΠΊΠ΅Ρ‚Π° Π½Π° основС сСтки со строками ΠΈ
столбцы, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС Π²Π΅Π±-страниц Π±Π΅Π· использования ΠΏΠΎΠΏΠ»Π°Π²ΠΊΠΎΠ² ΠΈ
ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.


ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°

Бвойства сСтки ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π²ΠΎ всСх соврСмСнных Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ….


Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ сСтки

ΠœΠ°ΠΊΠ΅Ρ‚ сСтки состоит ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ элСмСнта с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌΠΈ элСмСнтами.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

1

2

3

4

5

6

7

8

9

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ свойство

HTML-элСмСнт становится ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ сСтки, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ свойство display
установлСн Π½Π°
сСтка ΠΈΠ»ΠΈ встроСнная сСтка .

ВсС прямыС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ элСмСнты ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° сСтки автоматичСски становятся элСмСнтами сСтки .


Π‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹ сСтки

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ элСмСнтов сСтки Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ столбцами .


Π‘Ρ‚Ρ€ΠΎΠΊΠΈ сСтки

Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ элСмСнтов сСтки Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ строками .


Π—Π°Π·ΠΎΡ€Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ сСткой

ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ столбцом / строкой Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ .

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π·Π°Π·ΠΎΡ€Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… свойств:

сСтка-столбСц-ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ
сСтка-строка-ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ
сСтка-ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Бвойство grid-column-gap устанавливаСт ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ столбцами:

.Ρ€Π΅ΡˆΠ΅Ρ‚Ρ‡Π°Ρ‚Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
сСтка-столбСц-Π·Π°Π·ΠΎΡ€: 50 пиксСлСй;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Бвойство grid-row-gap устанавливаСт ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ строками:

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
сСтка-строка-ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ: 50 пиксСлСй;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Бвойство grid-gap являСтся сокращСнным свойством для grid-row-gap ΠΈ
сСтка-столбСц-Π·Π°Π·ΠΎΡ€ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹:

.Ρ€Π΅ΡˆΠ΅Ρ‚Ρ‡Π°Ρ‚Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
grid-gap: 50px 100px;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Бвойство grid-gap Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для установки ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΌΠ΅ΠΆΠ΄Ρƒ строками ΠΈ
Ρ€Π°Π·Ρ€Ρ‹Π² столбца Π² ΠΎΠ΄Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
grid-gap: 50px;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


Π›ΠΈΠ½ΠΈΠΈ сСтки

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ столбцами Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ строками столбцов .

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ строками Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ строками .

Π‘ΠΌ. НомСра строк ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ элСмСнта сСтки Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ сСтки:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ элСмСнт сСтки Π² строку столбца 1 ΠΈ Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΌΡƒ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° строкС столбца 3:

.item1 {

Π½Π°Ρ‡Π°Π»ΠΎ столбца сСтки: 1;
сСтка-столбСц-ΠΊΠΎΠ½Π΅Ρ†: 3;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ элСмСнт сСтки Π½Π° строку 1 ΠΈ Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΌΡƒ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° строкС 3:

.ΠΏΠΎΠ·.1 {

Π½Π°Ρ‡Π°Π»ΠΎ строки сСтки: 1;
сСтка-ΠΊΠΎΠ½Π΅Ρ† ряда: 3;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

.

c # — Π’Π°Π±Π»ΠΈΡ†Π° сСтки Π² WPF

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

.

c # — ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ°Ρ…ΠΎΠΌ столбцов Π² сСткС

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

.

CSS Grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€


ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


Π‘Π΅Ρ‚Π΅Π²ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

Π§Ρ‚ΠΎΠ±Ρ‹ HTML-элСмСнт Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ сСтки, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свойство отобраТСния Π½Π° grid ΠΈΠ»ΠΈ inline-grid .

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ сСтки состоят ΠΈΠ· элСмСнтов сСтки, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π²Π½ΡƒΡ‚Ρ€ΠΈ столбцов ΠΈ строк.


Π‘Π΅Ρ‚ΠΊΠ°-шаблон-столбцы Бвойство

Бвойство grid-template-columns опрСдСляСт
количСство столбцов Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π΅ сСтки, ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ столбца.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ прСдставляСт собой список, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ опрСдСляСт ΡˆΠΈΡ€ΠΈΠ½Ρƒ
ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ столбца.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ°ΠΊΠ΅Ρ‚ сСтки содСрТал 4 столбца, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΡˆΠΈΡ€ΠΈΠ½Ρƒ 4 столбцов ΠΈΠ»ΠΈ Β«Π°Π²Ρ‚ΠΎΒ», Ссли всС столбцы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ сСтку ΠΈΠ· 4 столбцов:

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
столбцы-шаблон-сСтки: Π°Π²Ρ‚ΠΎ Π°Π²Ρ‚ΠΎ Π°Π²Ρ‚ΠΎ Π°Π²Ρ‚ΠΎ;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Если Ρƒ вас Π±ΠΎΠ»Π΅Π΅ 4 элСмСнтов Π² сСткС ΠΈΠ· 4 столбцов, сСтка Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски
Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ строку для размСщСния элСмСнтов.

Бвойство grid-template-columns Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для указания Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (ΡˆΠΈΡ€ΠΈΠ½Ρ‹) столбцов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

УстановитС Ρ€Π°Π·ΠΌΠ΅Ρ€ для 4 столбцов:

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
сСтка-шаблон-столбцы: 80 пиксСлСй 200 пиксСлСй автоматичСски 40 пиксСлСй;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


Бвойство grid-template-rows

Бвойство grid-template-rows опрСдСляСт высоту ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ прСдставляСт собой список, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ опрСдСляСт высоту ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строки:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
сСтка-шаблон-строки: 80 пиксСлСй 200 пиксСлСй;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


Бвойство justify-content

Бвойство justify-content ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для выравнивания всСй сСтки Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠžΠ±Ρ‰Π°Ρ ΡˆΠΈΡ€ΠΈΠ½Π° сСтки Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ мСньшС ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ свойство justify-content ΠΈΠΌΠ΅Π»ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ дСйствиС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
justify-content: Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ ΠΏΠΎ пространству;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
justify-content: пространство Π²ΠΎΠΊΡ€ΡƒΠ³;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
justify-content: ΠΏΡ€ΠΎΠ±Π΅Π» ΠΌΠ΅ΠΆΠ΄Ρƒ;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.сСтка-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
justify-content: center;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »


Бвойство align-content

Бвойство align-content ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для
Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ
выровняйтС всю сСтку Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠžΠ±Ρ‰Π°Ρ высота сСтки Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ мСньшС высоты ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ свойство align-content ΠΈΠΌΠ΅Π»ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ дСйствиС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.сСтка-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
высота: 400 пиксСлСй;
Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚: Ρ†Π΅Π½Ρ‚Ρ€;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
высота: 400 пиксСлСй;
Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚: Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
высота: 400 пиксСлСй;
Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚: ΠΏΡ€ΠΎΠ±Π΅Π» Π²ΠΎΠΊΡ€ΡƒΠ³;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.сСтка-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
высота: 400 пиксСлСй;
Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚: ΠΏΡ€ΠΎΠ±Π΅Π» ΠΌΠ΅ΠΆΠ΄Ρƒ;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
высота: 400 пиксСлСй;
Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚: Π½Π°Ρ‡Π°Π»ΠΎ;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.grid-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ {
дисплСй: сСтка;
высота: 400 пиксСлСй;
Π²Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚: ΠΊΠΎΠ½Π΅Ρ†;
}

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *