Сложни оформления, използващи flex css примери. Какво е Flexbox? Описание на всички свойства на css, основни принципи, предимства и недостатъци

Сложни оформления, използващи flex css примери.  Какво е Flexbox?  Описание на всички свойства на css, основни принципи, предимства и недостатъци
Сложни оформления, използващи flex css примери. Какво е Flexbox? Описание на всички свойства на css, основни принципи, предимства и недостатъци

Flexbox е идеален за създаване на често използвани оформления на уебсайтове, като например оформлението с три колони, така нареченото „Светия Граал“, където всички колони трябва да заемат пълна височина, независимо от тяхното съдържание. В същото време, в програмен кодосновното съдържание идва преди навигацията, а на самата страница основното съдържание идва след навигацията.

Като този.

Пример

Шапка
статия
Мазе

Преди появата на flexbox, този вид оформление беше доста трудно да се получи, без да се използва някакъв вид хак. Разработчиците често трябваше да правят неща като добавяне на допълнително маркиране, прилагане на отрицателни полета и други трикове, за да накарат всичко да се подреди правилно, независимо от количеството съдържание или размера на екрана. Но, както показва примерът по-горе, във flexbox всичко е много по-просто.

Ето обобщение на кода. В този пример правим елемента #main гъвкав контейнер, като оставяме горния и долния колонтитул като елементи на ниво блок. С други думи, само средната част става flexbox. Ето един фрагмент, който го прави гъвкав контейнер.

#main (дисплей: flex; min-height: calc(100vh - 40vh); )

Ние просто използваме display: flex, за да направим гъвкав контейнер. Забележете, че също задаваме стойността на минималната височина с функцията calc() и задаваме #main на 100% от височината на прозореца за изглед минусвисочината на капачката и мазето (по 20vh). Това гарантира, че оформлението ще заеме цялата височина на екрана, дори ако има малко съдържание. В резултат на това долният колонтитул никога няма да се повдигне и да остави празно пространство под него, ако съдържанието заема по-малко от височината на екрана.

Изчисляването на минималната височина беше достатъчно лесно, като се има предвид, че приложихме box-sizing: border-box към всички елементи. Ако не сме го направили, тогава ще трябва да добавим стойността на подплънката към извадената сума.

След инсталирането на гъвкавия контейнер имаме работа с гъвкави елементи.

#main > article (flex: 1;) #main > nav, #main > aside (flex: 0 0 20vw; background: beige;) #main > nav (order: -1;)

Свойството flex е съкратено за свойствата flex-grow, flex-shrink и flex-basis. В първия случай ние записахме само една стойност, така че flex задава свойството flex-grow. Във втория случай написахме и трите стойности за