Junior
Flexbox nima?
sobes.tech AI
AIdan javob
Flexbox (Flexible Box Layout) CSS ning, murakkab va moslashuvchan maketlar yaratish uchun mo'ljallangan modulidir. U konteyner elementlarining joylashuvi, tekisligi va bo'shliq taqsimotini boshqarishga imkon beradi, hatto ularning o'lchamlari noma'lum yoki dinamik bo'lsa ham.
Flexbox ning asosiy tushunchalari:
- Asosiy o'q (main axis): Elementlar joylashadigan o'q. Standart holatda gorizontal (chapdan o'ngga).
- Kross o'q (cross axis): Asosiy o'qga perpendikulyar o'q. Standart holatda vertikal (yuqoridan pastga).
- Konteyner (flex container): Flexbox xususiyatlari qo'llanadigan element (
display: flexyokidisplay: inline-flex). - Elementlar (flex items): Kontenerning bolalar elementlari.
Flex konteyner uchun xususiyatlar:
display:flexyokiinline-flexflex-direction: Asosiy o'q yo'nalishini belgilaydi (row, row-reverse, column, column-reverse)flex-wrap: Elementlar yangi satrga o'tadimi yoki yo'qmi (nowrap, wrap, wrap-reverse)justify-content: Elementlarni asosiy o'q bo'ylab joylashtirish (flex-start, flex-end, center, space-between, space-around, space-evenly)align-items: Elementlarni kross o'q bo'ylab joylashtirish (flex-start, flex-end, center, baseline, stretch)align-content: Bir nechta satr yoki ustunlarni kross o'q bo'ylab joylashtirish (flex-start, flex-end, center, space-between, space-around, stretch)
Flex elementlar uchun xususiyatlar:
order: Elementning konteyner ichidagi tartibini belgilaydiflex-grow: Element qanday o'sishi kerakligini belgilaydi, ya'ni bo'sh joyni qanday egallashflex-shrink: Joy yetishmasa, element qanday qisqarishi kerakligini belgilaydiflex-basis: Bo'sh joy taqsimlanishidan oldin elementning boshlang'ich o'lchamiflex:flex-grow,flex-shrinkvaflex-basisuchun qisqa yozuvalign-self: Elementning kross o'q bo'ylab joylashishini qayta belgilash (flex-start, flex-end, center, baseline, stretch, auto)
Misol:
/* Kontener */
.container {
display: flex; /* Flexbox ni faollashtiradi */
flex-direction: row; /* Chiziqli tartib */
justify-content: center; /* Gorizontal markazlash */
align-items: center; /* Vertikal markazlash */
height: 200px; /* Kontener balandligi */
border: 1px solid black;
}
/* Elementlar */
.item {
width: 50px;
height: 50px;
background-color: lightblue;
margin: 5px;
}
Flexbox an'anaviy metodlarga nisbatan (float, inline-block, table) moslashuvchan maketlar yaratishni juda osonlashtiradi.