CSS Dersleri

CSS Flexbox: flex-basis, flex-grow ve flex-shrink Nedir?

eminbasbayan

eminbasbayan

3 dk okuma
CSS Flexbox: flex-basis, flex-grow ve flex-shrink Nedir?
🔍 Büyütmek için tıklayın

Web geliştirmeye yeni başlayanlar için Flexbox, öğelerin nasıl büyüyüp küçüleceğini belirlemek için güçlü özellikler sunar. flex-basis, flex-grow ve flex-shrink özellikleri, öğelerin ana eksen (main axis) boyunca nasıl boyutlandırılacağını yönetir. Bu yazıda, bu üç özelliğin nasıl çalıştığını ve hangi durumlarda kullanıldığını detaylıca ele alacağız.

flex-basis Nedir?

flex-basis, bir öğenin başlangıç boyutunu belirler. Yani, Flexbox konteynerine eklenmeden önce bir öğenin başlangıçta sahip olacağı genişlik veya yüksekliktir.

Eğer flex-direction: row ise, flex-basis genişliği kontrol eder.
Eğer flex-direction: column ise, flex-basis yüksekliği kontrol eder.

Örnek kullanım:

.container div { flex-basis: 300px; }

Bu durumda, tüm öğeler başlangıçta 300 piksel genişliğinde olur.

TEXT?TEXT?

flex-grow Nedir?

flex-grow, bir öğenin fazladan alanı nasıl paylaşacağını belirler. Eğer konteynerde ekstra boşluk varsa, flex-grow özelliği olan öğeler bu boşluğu paylaşır.

Örnek kullanım:

.container div { flex-grow: 1; }

Bu durumda, tüm öğeler boş alanı eşit şekilde paylaşacaktır. Eğer bir öğeye flex-grow: 2; verilirse, o öğe diğerlerinden iki kat fazla yer kaplayacaktır.

Örnek:

.container div:nth-of-type(1) { flex-grow: 1; } .container div:nth-of-type(2) { flex-grow: 2; }

Bu durumda, ikinci öğe birinci öğeden iki kat daha geniş olacaktır.

TEXT?TEXT?

flex-shrink Nedir?

flex-shrink, bir öğenin dar alanlarda ne kadar küçüleceğini belirler. Eğer konteynerin içine sığmazlarsa, flex-shrink değeri daha büyük olan öğeler daha fazla küçülecektir.

Örnek kullanım:

.container div { flex-shrink: 1; }

Bu durumda, tüm öğeler eşit şekilde küçülür. Eğer bir öğeye flex-shrink: 2; verilirse, o öğe diğerlerinden iki kat fazla küçülecektir.

Örnek:

.container div:nth-of-type(1) { flex-shrink: 2; } .container div:nth-of-type(2) { flex-shrink: 0; }

Bu durumda, birinci öğe diğerlerinden daha fazla küçülecek, ikinci öğe ise hiç küçülmeyecektir.

TEXT?TEXT?

Örnek Uygulama

Aşağıdaki HTML yapısında beş adet div bulunuyor ve biz bunları flex-basis, flex-grow ve flex-shrink ile farklı şekillerde boyutlandıracağız:

<div class="container"> <div class="box" style="background-color: green;">A</div> <div class="box" style="background-color: blue;">B</div> <div class="box" style="background-color: red;">C</div> <div class="box" style="background-color: yellow;">D</div> <div class="box" style="background-color: purple;">E</div> </div>

Şimdi bu öğeleri flexbox ile farklı şekillerde boyutlandıralım:

.container { display: flex; flex-wrap: nowrap; width: 100%; height: 300px; margin: auto; border: 2px solid black; } .box { flex-basis: 200px; flex-grow: 1; flex-shrink: 1; text-align: center; font-size: 20px; color: white; } .container div:nth-of-type(3) { flex-grow: 2; flex-shrink: 0; }

Bu kodları çalıştırdığımızda:

  • flex-basis: 200px; ile tüm öğeler başlangıçta 200 piksel genişlikte olur.
  • flex-grow: 1; ile tüm öğeler boş alanı eşit şekilde paylaşır.
  • flex-shrink: 1; ile tüm öğeler aynı oranda küçülür.
  • Üçüncü öğeye flex-grow: 2; verilerek, boş alanın iki katını alması sağlanmıştır.

flex-basis, flex-grow ve flex-shrink Arasındaki Farklar

ÖzellikAçıklama
flex-basisÖğenin başlangıç boyutunu belirler.
flex-growÖğenin ekstra boş alanı nasıl paylaşacağını belirler.
flex-shrinkÖğenin küçülme oranını belirler.

Sonuç

flex-basis, flex-grow ve flex-shrink özellikleri, öğelerin ana eksende nasıl boyutlandırılacağını belirleyen temel Flexbox özellikleridir. flex-basis öğelerin başlangıç boyutunu belirlerken, flex-grow fazladan alanı nasıl paylaşacaklarını, flex-shrink ise dar alanlarda nasıl küçüleceklerini yönetir.

Öğelerin nasıl boyutlandırılacağını belirlemek için:

  • flex-basis ile başlangıç boyutunu ayarlayın.
  • flex-grow ile fazladan boşlukların nasıl paylaşılacağını belirleyin.
  • flex-shrink ile öğelerin nasıl küçüleceğini kontrol edin.

Flexbox ile ilgili kafanıza takılan bir şey varsa, yorumlarda paylaşabilirsiniz!

Etiketler

#Eğitimler#CSS Dersleri

İlgili Yazılar

Bu konuyla ilgili diğer yazılarımızı da inceleyebilirsiniz

CSS Nedir?
CSS Dersleri

CSS Nedir?

### CSS Nedir? Web geliştirme dünyasında, bir web sayfasını hem işlevsel hem de görsel olarak etkileyici hale getirmek önemli bir adımdır. HTML bir web sayfasının iskeletini oluştururken, **CSS (Cascading Style Sheets)** ise bu iskeleti görsel bi

3 dk
HTML Sayfalarına CSS Eklemek
CSS Dersleri

HTML Sayfalarına CSS Eklemek

CSS (Cascading Style Sheets), bir web sayfasının görünümünü ve düzenini kontrol etmemize olanak tanır. Ancak, CSS yazmaya başlamadan önce, bu stilleri **nerede** ve **nasıl** yazacağımızı öğrenmek önemlidir. Bu yazıda, CSS’i HTML sa

4 dk
CSS Color ve Background-Color
CSS Dersleri

CSS Color ve Background-Color

CSS, bir web sayfasının görselliğini tamamen değiştirebileceğimiz güçlü bir araçtır. Bu yazıda, CSS’in en temel ve yaygın olarak kullanılan özelliklerinden ikisi olan `color` ve `background-color` özelliklerini inceleyeceğiz. Yeni başlayanlar için bu ö

4 dk
CSS Hexadecimal Renkler
CSS Dersleri

CSS Hexadecimal Renkler

CSS'te renkleri tanımlamak için kullanılan birçok yöntem bulunmaktadır. Bunlardan biri de **hexadecimal** renklerdir. Hexadecimal renkler, RGB (kırmızı, yeşil, mavi) renk modeline dayanır ve web geliştirme dünyasında oldukça yaygın bir şekilde k

4 dk
CSS Metin Özellikleri
CSS Dersleri

CSS Metin Özellikleri

CSS ile metinleri şekillendirmek, bir web sayfasını hem görsel açıdan daha çekici hale getirir hem de okunabilirliğini artırır. Bu yazıda, metinleri hizalamak, kalınlaştırmak, süslemek ve aralarındaki boşlukları kontrol etmek gibi yaygın CSS özelliklerini detaylı bir şekilde ele alacağız. Yazı

3 dk
CSS font-size Kullanımı
CSS Dersleri

CSS font-size Kullanımı

CSS ile metinlerin boyutunu kontrol etmek için kullanılan özellik **`font-size`** özelliğidir. Bu özellik, web sayfanızdaki yazıların boyutunu belirlemenize olanak tanır. Yazı boyutunu ayarlamak oldukça basittir, ancak CSS’te boyutlar için ku

4 dk