Най-четени

Даниел Десподов
Даниел Десподов
Новинар. Увличам се от съвременни технологии, информационна безопасност, спорт, наука и изкуствен интелект.

Нека набързо да разгледаме изграждането на макети за уеб сайтовете.

5 минути с CSS Grid

Grid макетите имат съществено значение за дизайна на уеб сайтовете, а модулът CSS Grid е най-мощният и удобен инструмент за тяхното създаване.

5 минути с CSS Grid

Още през 2018 година всички популярни уеб браузъри разполагат с вградена поддръжка на CSS Grid и е добре да се познава тази технология. Нека само за няколко минути да се спрем върху най-основните възможности на CSS Grid.

Нашият първи CSS Grid макет

Двата основни компонента на CSS Grid са обвивката (Родителят) и елементите (Децата). Обвивката е всъщност решетка или таблица, а нейните елементи са данните в нея.

Ето как изглежда кода за обвивка с шест елемента в нея:

<div class="wrapper">
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
</div>

За да превърнем тази div обвивка в решетка, трябва просто да й дадем изобразяване чрез grid:

.wrapper {
    display: grid;
}

Засега този код нищо особено не прави, понеже не сме определили как точно трябва да изглежда тази решетка. Засега това са просто 6 div елемента един върху друг:

5 минути с CSS Grid
Тук са добавени няколко стила, които нямат нищо общо с CSS Grid

Колони и редове

За да направим този макет двумерен, трябва да определим какви ще бъдат колоните и редовете. За тази цел ще използваме свойствата grid-template-row и grid-template-column:

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

И тъй като написахме три значения за grid-template-columns, то съвсем логично получаваме три колони. И понеже сме задали две значения за grid-template-rows, то ще имаме два реда. Тоест, нашата решетка се стои от два реда и три колони.

Зададените числа определят ширината на нашите колони (100px) и височината на нашите редове (50px). Ето какъв е резултатът:

5 минути с CSS Grid

За да се убедим, че правилно разбираме връзката между зададените значения и външния вид на решетката, нека разгледаме следния пример:

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

Опитайте се да направите връзката между кода и получения макет (шаблон).

Ето как всъщност изглежда това:

5 минути с CSS Grid

Разположение на елементите

Следващото, което трябва да се разбере е как се разполагат елементите в решетката (таблицата). Тук всички получаваме свръх способности, понеже създаването на тези шаблони е съвсем лесно.

Нека да направим решетка с размерност 3х3, като използваме почти същия код, както направихме малко по-горе:

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

Това ще доведе до създаването на следния шаблон:

5 минути с CSS Grid

Забележете, че се вижда решетка 3х2, въпреки че ние зададохме тя да бъде 3х3. Причината е, че имаме само шест div елемента, които запълват решетката. Ако имахме още три елемента, то и долният ред щеше да бъде запълнен.

За позиционирането и промяната на размера на елементите ще използваме свойствата grid-column и grid-row:

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

С този код казваме, че искаме item1 да започва от първия ред на решетката и да свършва при четвъртата колона. С други думи, този елемент ще заеме целия първи ред. Ето как това изглежда на екрана:

5 минути с CSS Grid

Може би ще се запитате, откъде се взе четвърта колона, след като сме задали само три? Вижте следното изображение:

5 минути с 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;
}

Ето как изглежда това на екрана и не би трябвало да ни затрудни защо става така:

5 минути с CSS Grid


Това е всичко за този път.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

2 Коментара
стари
нови оценка

Нови ревюта

Подобни новини