CSS Grid — це техніка в каскадних таблицях стилів, що дозволяє веброзробникам створювати складні адаптивні макети вебдизайну більш легко і послідовно у різних вебпереглядачах. Є й інші методи макета вебсторінок, що використовувались раніше, включаючи tables, CSS Box model та CSS Flexbox.
CSS Grid — це модель шаблону, оптимізована для двовимірних шаблонів. Використовується як модель для шаблонів вебсайтів, форм, галерей і всього, що вимагає точного та уважного позиціювання. Сітки CSS це новий підхід до створення адаптивних сайтів з великою кількістю блоків, розташованих в будь-яких місцях сайту. Крім CSS Grid існує також технологія Flexbox, яка дуже схожа з CSS Grid.
Історія
Grid модуль в CSS був розроблений CSS Working Group для того, щоб надати найкращий спосіб створення шаблонів в CSS. Він потрапив в W3C Candidate Recommendation в лютому 2017 року, а основні браузери почали його підтримку в березні 2017 року. Використовується для front-end розробки. Дана технологія має потужний функціонал та інтуїтивно зрозумілий синтаксис, а шаблони на grid безсумнівно змінюватимуть те, на чому створюється Web.
Порівняння Flexbox та CSS Grid
CSS Grid можна назвати поліпшеною версією Flexbox, адже Flexbox дозволяє працювати лише в одній площині: або створювати стовпці, або створювати рядки.
CSS Grid дозволяє робити більше, так як дана технологія працює в обох площинах одночасно. Таким чином, створення адаптивних блоків сайту відбувається простіше, а можливості для розташування об'єктів збільшуються.
Підтримка браузерів
Станом на березень 2017 року більшість браузерів постачали безпрефіксну підтримку CSS Grid: Chrome (включаючи Android), Firefox, Safari (включаючи iOS) та Opera. Internet Explorer 10 та 11, з іншого боку, підтримують його стару реалізацію із застарілим синтаксисом. Всі сучасні браузери для мобільних пристроїв підтримують CSS Grid, окрім браузерів Opera mini та UC.
Принцип роботи
Алгоритм дій роботи з CSS Grid є наступним:
- Створюється один основний блок, в який розміщуються інші блоки (секції);
- До основного блоку додається властивість
display: grid
; - До всіх елементів основного блоку тепер можна застосовувати властивості сіток CSS;
- Додаються інші властивості.
Кожному блоку можна встановлювати ширину, висоту та його розташування. Блоки, які створюються на основі сіток, відразу мають , який підлаштовує блоки під різні розширення екранів, що дозволяє зменшувати кількість написаного коду.
Під час роботи з CSS Grid розробник працює з Grid Layout, застосовуючи правила CSS як для батьківського (parent) елемента (який стає Grid Container), так і до дочірніх (children) елементів (які стають елементами Grid).
Особливості макета CSS Grid
Макет сітки CSS має такі особливості:
- Фіксовані та гнучкі розміри смуг
- Можна створити сітку з фіксованими розмірами смуг — наприклад, використовуючи пікселі. Це встановлює сітку на певні пікселі, що відповідають бажаному макету. Також розробник може створити сітку з використанням гнучких розмірів у відсотках або з використанням нової одиниці fr, розробленої саме для цієї мети.
- Розміщення елементів
- Можна розміщувати елементи у точному місці сітки, використовуючи номери рядків, імена або орієнтуючись на область сітки. Сітка також містить алгоритм для контролю розміщення елементів, які не мають явного положення на сітці.
- Створення додаткових смуг для вмісту
- Можна визначати сітку явно в макеті сітки, але специфікація також стосується вмісту, доданого за межами оголошеної сітки, додаючи додаткові рядки та стовпчики за потребою. Спрацьовує принцип додавання «стільки стовпчиків, скільки вміститься в контейнері».
- Управління вирівнюванням
- Сітка містить функції вирівнювання для того, щоби була можливість контролювати, як вирівнюються розміщені в області сітки елементи та як вирівнюється вся Grid-сітка.
- Управління вмістом, що перекривається
- У секцію сітки можна додати більше, аніж один елемент. Також області можуть частково перекривати одна одну. Цим накладенням можна керувати за допомогою властивості
z-index
.
Термінологія
- Grid container
- Набір пересічних горизонтальних і вертикальних grid-ліній, які ділять простір на grid-області, в які можуть бути поміщені grid-елементи. Усередині grid-контейнера є два набори grid-ліній: один визначає вісь стовпців, інший визначає вісь рядків.
До Grid container застосовується display: grid
. Це прямий батьківський (parent) елемент для всіх елементів сітки.
<div class="container"> <div class="item item-1"></div> <div class="item item-2"></div> <div class="item item-3"></div> </div>
- Grid items
- Дочірні елементи (прямі нащадки) контейнера.
Тут item — це елемент сітки, але не sub-item.
<div class="container"> <div class="item"></div> <div class="item"> <p class="sub-item"></p> </div> <div class="item"></div> </div>
- Grid lines
- Горизонтальні та вертикальні роздільники grid-контейнера. Ці лінії знаходяться по обидва боки від стовпчика або рядка.
Grid-лінії формують структуру контейнера. Автор може задати для елемента ім'я або числовий індекс, які може використовувати далі в стилях. Нумерація починається з одиниці.
Елемент grid line сприйнятливий до режиму написання, який використовується на вашому ресурсі. Наприклад, якщо ви використовуєте арабську мову або будь-який іншу мову, у якої режим написання справа наліво, то нумерація ліній буде починатися з правого боку.
До grid lines можна прив'язувати grid-елементи — і за номерами, і по іменах, як зручніше.
- Grid strip
- Те, що обмежено парою сусідніх grid-ліній. Вертикальні grid-смуги — це колонки grid(аналог стовпців таблиці), горизонтальні — ряди(аналог рядків).
- Grid cell
- Найменша неподільна одиниця grid-контейнера, на яку можна посилатися при позиціюванні grid-елементів. Утворюється на перетині grid-рядка і grid-колонки. Аналог елемента таблиці.
- Grid area
- Простір всередині grid контейнера, в який може бути поміщений один або більше grid-елементів. Цей елемент може складатися з одного або більше grid осередків.
Grid-області — прямокутники з M × N суміжних grid-осередків (1 × 1 і більше). Кожна grid-область обмежена двома парами grid-ліній (парою вертикальних і парою горизонтальних). У них і розміщуються grid-елементи. Grid-областям теж можна задавати імена.
- Grid track
- Простір між двома суміжними grid-лініями, вертикальними або горизонтальними. Аналог border-spacing в таблиці.
.container { grid-column-gap: 10px; grid-row-gap: 15px; }
Рядки і розташування елементів
В CSS Grid можна розміщувати елементи, використовуючи номери рядків. Є можливість іменувати рядки, використовуючи grid-area
, а також можливість прив'язки до області Grid.
.wrapper { display: grid; grid-template-areas: "a a b" "a a b" "c d d"; } .item1 {grid-area: a;} .item2 {grid-area: b;} .item2 {grid-area: c;} .item2 {grid-area: d;}
Розміри смуг (треків)
Сітку в Grid можна створювати з фіксованими розмірами («px»), відносними розмірами («em», «rem»), а також задаючи гнучкі розміри — '%' або 'fr' (fraction). Нова одиниця розраховується самостійно.
Калькуляція в «fr»
Наприклад, якщо доступне місце становить 900 px, і при цьому першому елементу дістається одна частка, а другому — дві, то перший отримує 1/3, а другий — 2/3 від 900 px.
<div class="grid"> <div class="box item1">Item 1</div> <div class="box item2">Item 2</div> <div class="box item3">Item 3</div> <div class="box item4">Item 4</div> </div>
.grid { display: grid; grid-gap:20px; grid-template: 100px auto 100px /1fr 80px 3fr 20%;; }
Визначення смуг зі значенням repeat()
Великі grid-сітки з багатьма смугами можуть використовувати значення repeat()
для скорочення при визначенні стовпчиків:
.wrapper { display: grid; grid-template-columns: 1fr 1fr 1fr; }
Також може бути записано як:
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); }
Значення repeat може використовуватись лише для частини стовпчиків. В наступному прикладі ініційовано смугу 20рх, секцію з 6 смуг шириною 1fr, і смугу 20рх.
.wrapper { display: grid; grid-template-columns: 20px repeat(6, 1fr) 20px; }
Значення repeat визначає смуги, тобто його можливо використовувати для створення цілих шаблонів стовпчиків. В наступному прикладі grid-сітка складається з 10 смуг. Смуга 1fr, смуга 2fr і так п'ять разів.
.wrapper { display: grid; grid-template-columns: repeat(5, 1fr 2fr); }
Осі елементів в Grid
При роботі з Grid є дві осі для вирівнювання елементів.
Вісь column (стовпчик)
Коли розробник використовує властивості align-self
і align-items
, змінюється вирівнювання елемента в області сітки, яку помістили. Властивість align-items
встановлює властивість align-self
для всіх дочірніх елементів сітки. Це означає, що можна встановити властивість індивідуально, використовуючи align-self
по елементу сітки.
Вісь row (рядки)
Елементи управління justify-items
і justify-self
на осі row / inline:
<div class="grid"> <div class="box item1">Item 1</div> <div class="box item2">Item 2</div> <div class="box item3">Item 3</div> <div class="box item4">Item 4</div> </div> .grid { display: grid; grid-gap:20px; grid-template: 100px auto 100px / 1fr 1fr 1fr 1fr; align-items: stretch; } .item1 { background: #f00; align-self: end; } .item2 { background: #f0f; align-self: flex-start; } .item3 { background: #008000; align-self: end; } .item4 { background: #000; }
- Також можна визначити встановлений розмір для смуг, створених в неявній grid-сітці властивостями
grid-auto-rows
таgrid-auto-columns
.
В прикладі нижче використовується grid-auto-rows
щоб забезпечити неявне створення смуги висотою 200рх.
<div class="wrapper"> <div>One</div> <div>Two</div> <div>Three</div> <div>Four</div> <div>Five</div> </div> .wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 200px; }
Розміри смуг і minmax()
Встановлюючи явну grid-сітку або визначаючи розміри для автоматично створених рядків або стовпчиків може виникнути необхідність надання смугам мінімального розміру. Але треба переконатись що розширюючись, вони відповідатимуть будь-якому доданому контенту. Наприклад, для того, щоб рядки ніколи не були менше 100рх, але якщо контент розширюється до 300рх, необхідно зробити, щоб рядок розширився до такої висоти.
Grid для таких випадків має функцію minmax()
. В наступному прикладі використовується minmax()
в значенні grid-auto-rows
. Це означає, що автоматично створені рядки матимуть мінімальну висоту 100рх, а максимальна встановлена в auto. Використання auto означає, що розмір підлаштовується під розмір контенту таким чином, щоб вмістити найвищий елемент в цьому рядку.
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: minmax(100px, auto); } <div class="wrapper"> <div>One</div> <div>Two <p>I have some more content in.</p> <p>This makes me taller than 100 pixels.</p> </div> <div>Three</div> <div>Four</div> <div>Five</div> </div>
Вкладені Grid-сітки
Grid-елементи можуть ставати Grid-контейнерами. У прикладі створено Grid-сітку з трьох стовпчиків з двома позиційованими елементами. Перший з них має піделементи. Оскільки ці елементи не є прямими нащадками, вони не беруть участі в Grid-розкладці і відображаються в нормальному потоці.
<div class="wrapper"> <div class="box box1"> <div class="nested">a</div> <div class="nested">b</div> <div class="nested">c</div> </div> <div class="box box2">Two</div> <div class="box box3">Three</div> <div class="box box4">Four</div> <div class="box box5">Five</div> </div>
Якщо застосувати display: grid
до box1, то ця Grid-смуга також стане Grid-сіткою. А елементи, що в ній містяться, надалі розташовуватимуться на цій новій Grid-сітці.
.box1 { grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; grid-row-end: 3; display: grid; grid-template-columns: repeat(3, 1fr); }
В цьому випадку, дочірня сітка немає відношення до батьківської. Як ви можете бачити на прикладі, вона не наслідує батьківський grid-gap
, а також лінії дочірньої сітки не вирівнюються по лініях батьківської сітки.
Нашарування елементів за допомогою z-index
Grid-елементи можуть займати одну і ту ж саму клітинку.
<div class="wrapper"> <div class="box box1">One</div> <div class="box box2">Two</div> <div class="box box3">Three</div> <div class="box box4">Four</div> <div class="box box5">Five</div> </div> .wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 100px; } .box1 { grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; grid-row-end: 3; } .box2 { grid-column-start: 1; grid-row-start: 2; grid-row-end: 4; }
Елемент box2 тепер перекриває box1, він відображається зверху, тому що пізніше трапляється в коді документу.
Керування послідовністю
Для контролювання порядку, в якому елементи накладаються один на одного, використовується властивість z-index
. Якщо надати box2 нижчий z-index
, ніж в box1, то він і буде показаний нижче у стеку.
.wrapper { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 100px; } .box1 { grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; grid-row-end: 3; z-index: 2; } .box2 { grid-column-start: 1; grid-row-start: 2; grid-row-end: 4; z-index: 1; }
Висновки
Переваги
- CSS Grid робить HTML чистішим (розмітка простіше, зменшення кількості необхідних для використання класів та додаткових тегів).
- Простота макета сторінки.
- Гнучкість та адаптація при роботі з елементами.
- Макет можна змінювати, не зачіпаючи розмітку.
- Можливість побудови блоків в двовимірному просторі (макет враховує горизонтальний і вертикальний простір одночасно).
- Немає обмежень за елементами побудови сітки макета.
- Дуже добре підходить для створення великих макетів і управління ними.
- Можливо створювати сайти з динамічним контентом.
- Медіа запити не потрібні, щоб адаптуватися до вільного простору.
- Дозволяє створювати більш гнучкі розкладки без зайвих стилів та не використовуючи окремі фреймворки CSS.
Недоліки
- Часткова підтримка в браузерах IE10 і IE11.
Примітки
- (англ.)Вёрстка на Grid в CSS. Полное руководство и справочник
- (рос.)Обзор CSS Grid — технологии для упрощения разметки HTML-страниц [ 5 жовтня 2021 у Wayback Machine.] 2018
- Основна концепція макета grid [ 17 грудня 2018 у Wayback Machine.] mozilla.org
Джерела
- https://www.w3schools.com/css/css_grid.asp [ 18 грудня 2018 у Wayback Machine.]
- https://css-tricks.com/snippets/css/complete-guide-grid/ [ 16 грудня 2018 у Wayback Machine.]
- https://developers.google.com/web/updates/2017/01/css-grid [ 4 грудня 2018 у Wayback Machine.]
- https://proglib.io/p/css-grid/ [ 17 грудня 2018 у Wayback Machine.] []
- https://tuhub.ru/posts/css-grid-complete-guide#prop-display [ 3 грудня 2018 у Wayback Machine.] []
- https://itproger.com/news/119 [ 17 грудня 2018 у Wayback Machine.] []
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
CSS Grid ce tehnika v kaskadnih tablicyah stiliv sho dozvolyaye vebrozrobnikam stvoryuvati skladni adaptivni maketi vebdizajnu bilsh legko i poslidovno u riznih vebpereglyadachah Ye j inshi metodi maketa vebstorinok sho vikoristovuvalis ranishe vklyuchayuchi tables CSS Box model ta CSS Flexbox CSS Grid ce model shablonu optimizovana dlya dvovimirnih shabloniv Vikoristovuyetsya yak model dlya shabloniv vebsajtiv form galerej i vsogo sho vimagaye tochnogo ta uvazhnogo poziciyuvannya Sitki CSS ce novij pidhid do stvorennya adaptivnih sajtiv z velikoyu kilkistyu blokiv roztashovanih v bud yakih miscyah sajtu Krim CSS Grid isnuye takozh tehnologiya Flexbox yaka duzhe shozha z CSS Grid IstoriyaZobrazhennya tipovogo maketa vebstorinki za dopomogoyu CSS floats Grid modul v CSS buv rozroblenij CSS Working Group dlya togo shob nadati najkrashij sposib stvorennya shabloniv v CSS Vin potrapiv v W3C Candidate Recommendation v lyutomu 2017 roku a osnovni brauzeri pochali jogo pidtrimku v berezni 2017 roku Vikoristovuyetsya dlya front end rozrobki Dana tehnologiya maye potuzhnij funkcional ta intuyitivno zrozumilij sintaksis a shabloni na grid bezsumnivno zminyuvatimut te na chomu stvoryuyetsya Web Porivnyannya Flexbox ta CSS Grid CSS Grid mozhna nazvati polipshenoyu versiyeyu Flexbox adzhe Flexbox dozvolyaye pracyuvati lishe v odnij ploshini abo stvoryuvati stovpci abo stvoryuvati ryadki CSS Grid dozvolyaye robiti bilshe tak yak dana tehnologiya pracyuye v oboh ploshinah odnochasno Takim chinom stvorennya adaptivnih blokiv sajtu vidbuvayetsya prostishe a mozhlivosti dlya roztashuvannya ob yektiv zbilshuyutsya Pidtrimka brauzerivStanom na berezen 2017 roku bilshist brauzeriv postachali bezprefiksnu pidtrimku CSS Grid Chrome vklyuchayuchi Android Firefox Safari vklyuchayuchi iOS ta Opera Internet Explorer 10 ta 11 z inshogo boku pidtrimuyut jogo staru realizaciyu iz zastarilim sintaksisom Vsi suchasni brauzeri dlya mobilnih pristroyiv pidtrimuyut CSS Grid okrim brauzeriv Opera mini ta UC Princip robotiAlgoritm dij roboti z CSS Grid ye nastupnim Stvoryuyetsya odin osnovnij blok v yakij rozmishuyutsya inshi bloki sekciyi Do osnovnogo bloku dodayetsya vlastivist span class nt display span span class o span span class w span span class nt grid span Do vsih elementiv osnovnogo bloku teper mozhna zastosovuvati vlastivosti sitok CSS Dodayutsya inshi vlastivosti Kozhnomu bloku mozhna vstanovlyuvati shirinu visotu ta jogo roztashuvannya Bloki yaki stvoryuyutsya na osnovi sitok vidrazu mayut yakij pidlashtovuye bloki pid rizni rozshirennya ekraniv sho dozvolyaye zmenshuvati kilkist napisanogo kodu Pid chas roboti z CSS Grid rozrobnik pracyuye z Grid Layout zastosovuyuchi pravila CSS yak dlya batkivskogo parent elementa yakij staye Grid Container tak i do dochirnih children elementiv yaki stayut elementami Grid Osoblivosti maketa CSS GridMaket sitki CSS maye taki osoblivosti Fiksovani ta gnuchki rozmiri smug Mozhna stvoriti sitku z fiksovanimi rozmirami smug napriklad vikoristovuyuchi pikseli Ce vstanovlyuye sitku na pevni pikseli sho vidpovidayut bazhanomu maketu Takozh rozrobnik mozhe stvoriti sitku z vikoristannyam gnuchkih rozmiriv u vidsotkah abo z vikoristannyam novoyi odinici fr rozroblenoyi same dlya ciyeyi meti Rozmishennya elementiv Mozhna rozmishuvati elementi u tochnomu misci sitki vikoristovuyuchi nomeri ryadkiv imena abo oriyentuyuchis na oblast sitki Sitka takozh mistit algoritm dlya kontrolyu rozmishennya elementiv yaki ne mayut yavnogo polozhennya na sitci Stvorennya dodatkovih smug dlya vmistu Mozhna viznachati sitku yavno v maketi sitki ale specifikaciya takozh stosuyetsya vmistu dodanogo za mezhami ogoloshenoyi sitki dodayuchi dodatkovi ryadki ta stovpchiki za potreboyu Spracovuye princip dodavannya stilki stovpchikiv skilki vmistitsya v kontejneri Upravlinnya virivnyuvannyam Sitka mistit funkciyi virivnyuvannya dlya togo shobi bula mozhlivist kontrolyuvati yak virivnyuyutsya rozmisheni v oblasti sitki elementi ta yak virivnyuyetsya vsya Grid sitka Upravlinnya vmistom sho perekrivayetsya U sekciyu sitki mozhna dodati bilshe anizh odin element Takozh oblasti mozhut chastkovo perekrivati odna odnu Cim nakladennyam mozhna keruvati za dopomogoyu vlastivosti span class nt z index span TerminologiyaGrid container Nabir peresichnih gorizontalnih i vertikalnih grid linij yaki dilyat prostir na grid oblasti v yaki mozhut buti pomisheni grid elementi Useredini grid kontejnera ye dva nabori grid linij odin viznachaye vis stovpciv inshij viznachaye vis ryadkiv Do Grid container zastosovuyetsya display grid Ce pryamij batkivskij parent element dlya vsih elementiv sitki lt div class container gt lt div class item item 1 gt lt div gt lt div class item item 2 gt lt div gt lt div class item item 3 gt lt div gt lt div gt Grid items Dochirni elementi pryami nashadki kontejnera Tut item ce element sitki ale ne sub item lt div class container gt lt div class item gt lt div gt lt div class item gt lt p class sub item gt lt p gt lt div gt lt div class item gt lt div gt lt div gt Grid lines Gorizontalni ta vertikalni rozdilniki grid kontejnera Ci liniyi znahodyatsya po obidva boki vid stovpchika abo ryadka Grid liniyi formuyut strukturu kontejnera Avtor mozhe zadati dlya elementa im ya abo chislovij indeks yaki mozhe vikoristovuvati dali v stilyah Numeraciya pochinayetsya z odinici Element grid line sprijnyatlivij do rezhimu napisannya yakij vikoristovuyetsya na vashomu resursi Napriklad yaksho vi vikoristovuyete arabsku movu abo bud yakij inshu movu u yakoyi rezhim napisannya sprava nalivo to numeraciya linij bude pochinatisya z pravogo boku Do grid lines mozhna priv yazuvati grid elementi i za nomerami i po imenah yak zruchnishe Grid strip Te sho obmezheno paroyu susidnih grid linij Vertikalni grid smugi ce kolonki grid analog stovpciv tablici gorizontalni ryadi analog ryadkiv Grid cell Najmensha nepodilna odinicya grid kontejnera na yaku mozhna posilatisya pri poziciyuvanni grid elementiv Utvoryuyetsya na peretini grid ryadka i grid kolonki Analog elementa tablici Grid area Prostir vseredini grid kontejnera v yakij mozhe buti pomishenij odin abo bilshe grid elementiv Cej element mozhe skladatisya z odnogo abo bilshe grid oseredkiv Grid oblasti pryamokutniki z M N sumizhnih grid oseredkiv 1 1 i bilshe Kozhna grid oblast obmezhena dvoma parami grid linij paroyu vertikalnih i paroyu gorizontalnih U nih i rozmishuyutsya grid elementi Grid oblastyam tezh mozhna zadavati imena Grid track Prostir mizh dvoma sumizhnimi grid liniyami vertikalnimi abo gorizontalnimi Analog border spacing v tablici container grid column gap 10 px grid row gap 15 px Ryadki i roztashuvannya elementiv V CSS Grid mozhna rozmishuvati elementi vikoristovuyuchi nomeri ryadkiv Ye mozhlivist imenuvati ryadki vikoristovuyuchi grid area a takozh mozhlivist priv yazki do oblasti Grid wrapper display grid grid template areas a a b a a b c d d item1 grid area a item2 grid area b item2 grid area c item2 grid area d Rozmiri smug trekiv Sitku v Grid mozhna stvoryuvati z fiksovanimi rozmirami px vidnosnimi rozmirami em rem a takozh zadayuchi gnuchki rozmiri abo fr fraction Nova odinicya rozrahovuyetsya samostijno Kalkulyaciya v fr Napriklad yaksho dostupne misce stanovit 900 px i pri comu pershomu elementu distayetsya odna chastka a drugomu dvi to pershij otrimuye 1 3 a drugij 2 3 vid 900 px lt div class grid gt lt div class box item1 gt Item 1 lt div gt lt div class box item2 gt Item 2 lt div gt lt div class box item3 gt Item 3 lt div gt lt div class box item4 gt Item 4 lt div gt lt div gt grid display grid grid gap 20 px grid template 100 px auto 100 px 1 fr 80 px 3 fr 20 Viznachennya smug zi znachennyam repeat Veliki grid sitki z bagatma smugami mozhut vikoristovuvati znachennya repeat dlya skorochennya pri viznachenni stovpchikiv wrapper display grid grid template columns 1 fr 1 fr 1 fr Takozh mozhe buti zapisano yak wrapper display grid grid template columns repeat 3 1 fr Znachennya repeat mozhe vikoristovuvatis lishe dlya chastini stovpchikiv V nastupnomu prikladi inicijovano smugu 20rh sekciyu z 6 smug shirinoyu 1fr i smugu 20rh wrapper display grid grid template columns 20 px repeat 6 1 fr 20 px Znachennya repeat viznachaye smugi tobto jogo mozhlivo vikoristovuvati dlya stvorennya cilih shabloniv stovpchikiv V nastupnomu prikladi grid sitka skladayetsya z 10 smug Smuga 1fr smuga 2fr i tak p yat raziv wrapper display grid grid template columns repeat 5 1 fr 2 fr Osi elementiv v Grid Pri roboti z Grid ye dvi osi dlya virivnyuvannya elementiv Vis column stovpchik Koli rozrobnik vikoristovuye vlastivosti align self i align items zminyuyetsya virivnyuvannya elementa v oblasti sitki yaku pomistili Vlastivist align items vstanovlyuye vlastivist align self dlya vsih dochirnih elementiv sitki Ce oznachaye sho mozhna vstanoviti vlastivist individualno vikoristovuyuchi align self po elementu sitki Vis row ryadki Elementi upravlinnya justify items i justify self na osi row inline lt div class grid gt lt div class box item1 gt Item 1 lt div gt lt div class box item2 gt Item 2 lt div gt lt div class box item3 gt Item 3 lt div gt lt div class box item4 gt Item 4 lt div gt lt div gt grid display grid grid gap 20 px grid template 100 px auto 100 px 1 fr 1 fr 1 fr 1 fr align items stretch item1 background f00 align self end item2 background f0f align self flex start item3 background 008000 align self end item4 background 000 Takozh mozhna viznachiti vstanovlenij rozmir dlya smug stvorenih v neyavnij grid sitci vlastivostyami grid auto rows ta grid auto columns V prikladi nizhche vikoristovuyetsya grid auto rows shob zabezpechiti neyavne stvorennya smugi visotoyu 200rh lt div class wrapper gt lt div gt One lt div gt lt div gt Two lt div gt lt div gt Three lt div gt lt div gt Four lt div gt lt div gt Five lt div gt lt div gt wrapper display grid grid template columns repeat 3 1 fr grid auto rows 200 px Rozmiri smug i minmax Vstanovlyuyuchi yavnu grid sitku abo viznachayuchi rozmiri dlya avtomatichno stvorenih ryadkiv abo stovpchikiv mozhe viniknuti neobhidnist nadannya smugam minimalnogo rozmiru Ale treba perekonatis sho rozshiryuyuchis voni vidpovidatimut bud yakomu dodanomu kontentu Napriklad dlya togo shob ryadki nikoli ne buli menshe 100rh ale yaksho kontent rozshiryuyetsya do 300rh neobhidno zrobiti shob ryadok rozshirivsya do takoyi visoti Grid dlya takih vipadkiv maye funkciyu minmax V nastupnomu prikladi vikoristovuyetsya minmax v znachenni grid auto rows Ce oznachaye sho avtomatichno stvoreni ryadki matimut minimalnu visotu 100rh a maksimalna vstanovlena v auto Vikoristannya auto oznachaye sho rozmir pidlashtovuyetsya pid rozmir kontentu takim chinom shob vmistiti najvishij element v comu ryadku wrapper display grid grid template columns repeat 3 1 fr grid auto rows minmax 100 px auto lt div class wrapper gt lt div gt One lt div gt lt div gt Two lt p gt I have some more content in lt p gt lt p gt This makes me taller than 100 pixels lt p gt lt div gt lt div gt Three lt div gt lt div gt Four lt div gt lt div gt Five lt div gt lt div gt Vkladeni Grid sitki Grid elementi mozhut stavati Grid kontejnerami U prikladi stvoreno Grid sitku z troh stovpchikiv z dvoma pozicijovanimi elementami Pershij z nih maye pidelementi Oskilki ci elementi ne ye pryamimi nashadkami voni ne berut uchasti v Grid rozkladci i vidobrazhayutsya v normalnomu potoci lt div class wrapper gt lt div class box box1 gt lt div class nested gt a lt div gt lt div class nested gt b lt div gt lt div class nested gt c lt div gt lt div gt lt div class box box2 gt Two lt div gt lt div class box box3 gt Three lt div gt lt div class box box4 gt Four lt div gt lt div class box box5 gt Five lt div gt lt div gt Yaksho zastosuvati display grid do box1 to cya Grid smuga takozh stane Grid sitkoyu A elementi sho v nij mistyatsya nadali roztashovuvatimutsya na cij novij Grid sitci box1 grid column start 1 grid column end 4 grid row start 1 grid row end 3 display grid grid template columns repeat 3 1 fr V comu vipadku dochirnya sitka nemaye vidnoshennya do batkivskoyi Yak vi mozhete bachiti na prikladi vona ne nasliduye batkivskij grid gap a takozh liniyi dochirnoyi sitki ne virivnyuyutsya po liniyah batkivskoyi sitki Nasharuvannya elementiv za dopomogoyu z index Grid elementi mozhut zajmati odnu i tu zh samu klitinku lt div class wrapper gt lt div class box box1 gt One lt div gt lt div class box box2 gt Two lt div gt lt div class box box3 gt Three lt div gt lt div class box box4 gt Four lt div gt lt div class box box5 gt Five lt div gt lt div gt wrapper display grid grid template columns repeat 3 1 fr grid auto rows 100 px box1 grid column start 1 grid column end 4 grid row start 1 grid row end 3 box2 grid column start 1 grid row start 2 grid row end 4 Element box2 teper perekrivaye box1 vin vidobrazhayetsya zverhu tomu sho piznishe traplyayetsya v kodi dokumentu Keruvannya poslidovnistyu Dlya kontrolyuvannya poryadku v yakomu elementi nakladayutsya odin na odnogo vikoristovuyetsya vlastivist span class nt z index span Yaksho nadati box2 nizhchij span class nt z index span nizh v box1 to vin i bude pokazanij nizhche u steku wrapper display grid grid template columns repeat 3 1 fr grid auto rows 100 px box1 grid column start 1 grid column end 4 grid row start 1 grid row end 3 z index 2 box2 grid column start 1 grid row start 2 grid row end 4 z index 1 VisnovkiPerevagi CSS Grid robit HTML chistishim rozmitka prostishe zmenshennya kilkosti neobhidnih dlya vikoristannya klasiv ta dodatkovih tegiv Prostota maketa storinki Gnuchkist ta adaptaciya pri roboti z elementami Maket mozhna zminyuvati ne zachipayuchi rozmitku Mozhlivist pobudovi blokiv v dvovimirnomu prostori maket vrahovuye gorizontalnij i vertikalnij prostir odnochasno Nemaye obmezhen za elementami pobudovi sitki maketa Duzhe dobre pidhodit dlya stvorennya velikih maketiv i upravlinnya nimi Mozhlivo stvoryuvati sajti z dinamichnim kontentom Media zapiti ne potribni shob adaptuvatisya do vilnogo prostoru Dozvolyaye stvoryuvati bilsh gnuchki rozkladki bez zajvih stiliv ta ne vikoristovuyuchi okremi frejmvorki CSS Nedoliki Chastkova pidtrimka v brauzerah IE10 i IE11 Primitki angl Vyorstka na Grid v CSS Polnoe rukovodstvo i spravochnik ros Obzor CSS Grid tehnologii dlya uprosheniya razmetki HTML stranic 5 zhovtnya 2021 u Wayback Machine 2018 Osnovna koncepciya maketa grid 17 grudnya 2018 u Wayback Machine mozilla orgDzherelahttps www w3schools com css css grid asp 18 grudnya 2018 u Wayback Machine https css tricks com snippets css complete guide grid 16 grudnya 2018 u Wayback Machine https developers google com web updates 2017 01 css grid 4 grudnya 2018 u Wayback Machine https proglib io p css grid 17 grudnya 2018 u Wayback Machine neavtoritetne dzherelo https tuhub ru posts css grid complete guide prop display 3 grudnya 2018 u Wayback Machine neavtoritetne dzherelo https itproger com news 119 17 grudnya 2018 u Wayback Machine neavtoritetne dzherelo