Junior
Flexbox nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Flexbox (Esnek Kutu Düzeni) CSS'nin, karmaşık ve uyumlu düzenler oluşturmak için tasarlanmış bir modülüdür. Konteyner içindeki öğelerin konumlandırmasını, hizalanmasını ve alan dağılımını yönetmesine olanak tanır, hatta boyutları bilinmeyen veya dinamik olsa bile.
Flexbox'un temel kavramları:
- Ana eksen (main axis): Öğelerin dizildiği eksen. Varsayılan olarak yataydır (soldan sağa).
- Çapraz eksen (cross axis): Ana eksene dik olan eksen. Varsayılan olarak dikeydir (üstten aşağıya).
- Konteyner (flex container): Flexbox özelliklerinin uygulandığı öğe (
display: flexveyadisplay: inline-flex). - Öğeler (flex items): Konteynerin çocuk öğeleri.
Flex konteyneri için özellikler:
display:flexveyainline-flexflex-direction: Ana eksenin yönünü belirler (row, row-reverse, column, column-reverse)flex-wrap: Öğelerin yeni satıra geçip geçmeyeceğini belirler (nowrap, wrap, wrap-reverse)justify-content: Öğeleri ana eksen boyunca hizalar (flex-start, flex-end, center, space-between, space-around, space-evenly)align-items: Öğeleri çapraz eksende hizalar (flex-start, flex-end, center, baseline, stretch)align-content: Çok satırlı konteynerde satırları veya sütunları çapraz eksende hizalar (flex-start, flex-end, center, space-between, space-around, stretch)
Flex öğeleri için özellikler:
order: Öğenin konteyner içindeki sırasını belirlerflex-grow: Öğenin kullanılabilir alanı ne kadar büyüyeceğini belirlerflex-shrink: Alan yetersizse öğenin ne kadar küçüleceğini belirlerflex-basis: Alan dağılımından önce öğenin başlangıç boyutunu belirlerflex:flex-grow,flex-shrinkveflex-basisiçin kısa yazımalign-self: Öğenin çapraz eksende hizalamasını yeniden tanımlar (flex-start, flex-end, center, baseline, stretch, auto)
Kullanım örneği:
/* Konteyner */
.container {
display: flex; /* Flexbox'ı etkinleştir */
flex-direction: row; /* Satır düzeni */
justify-content: center; /* Yatayda ortala */
align-items: center; /* Dikeyde ortala */
height: 200px; /* Konteyner yüksekliği */
border: 1px solid black;
}
/* Öğeler */
.item {
width: 50px;
height: 50px;
background-color: lightblue;
margin: 5px;
}
Flexbox, geleneksel yöntemlere göre (float, inline-block, table) uyumlu düzenler oluşturmayı büyük ölçüde kolaylaştırır.