You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.0 KiB
3.0 KiB
10 - Flexbox Layout
🎯 Co se naučíte
V této lekci se naučíte vytvářet moderní layouty pomocí CSS Flexbox.
📚 Témata lekce
- Flexbox základy -
display: flex - Flex container vlastnosti:
flex-direction(row, column)justify-content(zarovnání na hlavní ose)align-items(zarovnání na vedlejší ose)flex-wrap(zalamování položek)gap(mezery mezi položkami)
- Flex items vlastnosti:
flex-grow,flex-shrink,flex-basisalign-self(individuální zarovnání)
- Praktické použití - navigace, karty, layout
📂 Soubory v projektu
index.html- HTML struktura s flexbox layoutemstyle.css- CSS s flexbox vlastnostmi
💻 Ukázka z lekce
/* Flex container */
.wrapper {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 20px;
}
/* Flex items */
.main {
flex: 2; /* flex-grow: 2 */
}
.aside {
flex: 1; /* flex-grow: 1 */
}
/* Navigace s flexbox */
.navigace {
display: flex;
justify-content: space-between;
align-items: center;
}
🚀 Jak s lekcí pracovat
- Otevřete
index.htmlv prohlížeči - Otevřete Developer Tools (F12) a vyberte flexbox element
- V Chrome DevTools najdete Flexbox badge - klikněte pro vizualizaci
- Prozkoumejte
style.css- jak fungujedisplay: flex - Zkuste měnit
flex-direction,justify-content,align-items - Změňte velikost okna a sledujte, jak se flex items přizpůsobují
💡 Tip pro studenty
Kdy použít Flexbox:
- ✅ Navigační menu (horizontální nebo vertikální)
- ✅ Karty/produkty vedle sebe
- ✅ Centrování elementů (horizontálně i vertikálně)
- ✅ Jednosměrné layouty (řádek nebo sloupec)
Kdy raději Grid:
- ❌ Komplexní dvourozměrné layouty (řádky + sloupce)
- ❌ Galerie obrázků
- ❌ Celostránkové layouty s header, sidebar, main, footer
Hlavní koncept:
- Flex container = rodič s
display: flex - Flex items = přímé potomci flex containeru
Důležité vlastnosti:
/* Na kontejneru */
display: flex;
justify-content: center; /* horizontální zarovnání */
align-items: center; /* vertikální zarovnání */
gap: 20px; /* mezery mezi položkami */
/* Na položkách */
flex: 1; /* roztáhne položku */
🎯 Praktické příklady
Centrování:
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
Horizontální navigace:
nav {
display: flex;
justify-content: space-between;
}
Responzivní karty:
.card-container {
display: flex;
flex-wrap: wrap;
gap: 20px;
}
.card {
flex: 1 1 300px; /* min šířka 300px */
}
🔗 Související lekce
- Předchozí: 09_mediaquerry - responzivní design
- Další: 11_json - práce s JSON
- Porovnání: 12_grid - CSS Grid (dvourozměrný layout)
- Praktický projekt: AI_extra_material/ai_04_prep_bootstrap - kombinace Flex a Grid