- CSS Flexbox Playground, Flexbox özelliklerini gerçek zamanlı değiştirerek yerleşim değişikliklerini görmeyi sağlayan bir öğrenme aracıdır
- Kontroller ayarlandığında flex ayarlarının ekran yerleşimi üzerindeki etkisi anında karşılaştırılabilir
- Varsayılan örnek,
display: flex, flex-direction: row, justify-content: space-around, align-items: flex-start, flex-wrap: nowrap birleşimiyle başlar
- Ekrandaki
1 ile 5 arasındaki öğeler, ayar değişikliklerine göre hareket ederek yerleşim sonucunu görsel olarak kolayca anlamayı sağlar
- Oluşturulan CSS kodu kopyalanabildiği için denenen ayarları gerçek koda taşımak kolaydır
Gerçek zamanlı Flexbox deneme aracı
- CSS Flexbox Playground, Flexbox özelliklerini öğrenmek ve denemek için etkileşimli bir araçtır
- Kontroller ayarlandığında yerleşim değişiklikleri gerçek zamanlı olarak yansıtılır
- Deneme sonucu oluşturulan CSS kodu kopyalanabilir
Varsayılan örnek ayarları
- Örnek
.container ayarı aşağıdaki CSS'i kullanır
.container {
display: flex;
flex-direction: row;
justify-content: space-around;
align-items: flex-start;
flex-wrap: nowrap;
}
- Ekranda
1, 2, 3, 4, 5 öğeleri gösterilir ve Flexbox yerleşim sonucunu görmenizi sağlar
1 yorum
Hacker News yorumları
Flexbox’ın kendisi basit ve mantıklı, ama özellik ve değer adları komite usulü belirlenmiş gibi olduğundan sezgisel değil
justify-contentilealign-itemshangisiydi diye hatırlamaya çalışırken sonunda pes edip, çalışana kadar şunu bunu değiştirmeye başlıyorsunuzGrid için de benzer bir kılavuz var ve o da çok iyi
Özellikle SPA’lerde kutuların ekranı doldurması ama taşmaması gerektiğinde önemli. Sonunda oraya buraya
min-width: 0gibi hiç sezgisel olmayan ayarlar koyup birkaç şeyi daha kurcalayınca bir şekilde oluyorTüm bunları kapsayacak birkaç CSS sınıfı yapılabilir gibi geliyor, ama henüz her duruma uyan bir çözüm bulamadım
display: flexkuralının yanındaki ikona basınca çeşitli Flexbox özellikleri ikonlarla görselleştiriliyor ve tıklayarak doğrudan ayarlanabiliyorFiilen her sayfa bir deneme alanına dönüşüyor
justify-content: centeriçinjustify-center,align-items: centeriçinitems-center; neden böyle yaptıklarını anlamıyorumjustify-contentemain-axis,align-itemsa isecross-axisdenmeliydiBunu anlayınca Flexbox’ın tamamı kolaylaşıyor
Zaten çokça bahsedildi ama Flexbox Froggy https://flexboxfroggy.com/ öneregeldim ve başkaları da hızlıca öğrendi
CSS Grid öğrenmek için https://cssgridgarden.com/ da iyi
Daha çok çocuklara yönelik olan https://www.codemonkey.com/ ile benzer
Bootstrap kodu oluştururken https://build.layoutit.com/ işe yarıyor; CSS Grid için de https://grid.layoutit.com/ var. Ancak ilkinin Bootstrap 5 değil, yalnızca Bootstrap 4’e kadar desteklemesi üzücü
Josh’un kılavuzunu https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/ şiddetle tavsiye ederim
flex-basis, otomatik boşluklar,min-widthgibi daha ileri seviye tuzakları ve ipuçlarını ayrıntılı ele alıyorFlexbox ve Tailwind CSS bileşenlerini oldukça iyi bildiğimi sanıyordum, ama bu yazı teorik temele duyduğum açlığı güzelce giderdi
Güzel bir playground
Birkaç yıl önce sonunda benzer bir playground bulunan etkileşimli bir kılavuz hazırlamıştım: https://lik.ai/guides/an-interactive-guide-to-flexbox/
Ara sıra hafızamı tazelemek için işe yaramıştı
2025’e geldik; 2 yıl ve 3 eğitimden sonra hâlâ Flexbox’ı düzgün kullanamıyorum
https://flexboxfroggy.com/ da pek yardımcı olmadı
justifyvealignilk denemede her zaman ters oluyorCSS float yerleşimleri dahil her türlü şeyi yıllarca hatırlıyorum, ama Flexbox’ı birkaç ay kullanmayınca %80’ini unutup baştan okumam ve playground’da zaman harcamam gerekiyor
Sorun, özellik adlarının çok fazla olması ve bunların önemli bir kısmının sezgisel olmaması ya da düpedüz yanlış adlandırılmış gibi hissettirmesi. Bir iki harflik sembol adları verilseydi de herhalde benzer olurdu
Umarım bu araç yardımcı olur; eksik bir şey varsa bildirirseniz sevinirim
Bu özellik adlarına neden
justify-content,align-itemsdenmiş ki?main-axis-arrangementvecross-axis-alignmentdaha mantıklı olmaz mıydı?color,text-align,position: absoluteveposition: fixedgibi şeyler de öyle;absolutebile teknik olarak hâlâ göreli.justify-items,justify-selfile olan teamüllere de uyduğu için tutarlı.Yine de
align-contentile hâlâ karıştırıyorum.grid-templatekısayolunun önce y eksenini yazması da kafa karıştırıcı:y1 / x1 / y2 / x2Üstelik 0’dan da başlamadığı için hep unutuyorum.
cross-axis-center’ıalign-items: center’a,main-axis-between’ijustify-content: space-between’e eşleyen türden bir Tailwind alias eklentisi çabucak yapılabilir.Elbette değiştirilebilir, ama Flexbox’ın varsayılan davranışı bu hafıza tekniğiyle kapsanıyor.
Flexbox öğrenirken özelliklere bakmak için bir cheat sheet hazırlamıştım.
Başkalarına da faydalı olabilir: https://darekkay.com/flexbox-cheatsheet/
Hızlıca bakılan görsel bir cheat sheet olarak iyi, ama sonuçta projelerin farklı yerlerinde kullana kullana oturduğunu düşünüyorum.
Söz dizimi genel olarak kendini açıklıyor sayılır, ama
rowvecolumnbunun istisnası.Flexbox ya da Grid’in çoğunda büyük ölçüde bocaladığım olmadı, ama insanların çok karıştırdığını görüyorum. Kutu modelini anlamak ve Firefox geliştirici araçlarını kullanmak, Flexbox modelini öğrenirken çok yardımcı oluyor. Konteyneri oldukça iyi görselleştiriyor; artık Chrome geliştirici araçları da benzer hale geliyor gibi.
flexboxfroggy ve cssgridgarden da pratik için faydalıydı. Yine de söz dizimine bakmak için her seferinde CSS-Tricks cheat sheet’ini açıyorum ve
rowmucolumnmı olduğunu ilk denemede asla tutturamıyorum.Flex modu geçişini hızlıca açıp kapatabiliyorsunuz https://imgur.com/a/17iy1eN
Bu araç yalnızca 4 konteyner özelliğini ele aldığı için fazla sınırlı görünüyor.
Flexbox’ta oldukça önemli olan alt öğe özellikleri tamamen eksik.
CSS layout alıştırması yapabileceğimiz ilginç bir görev koleksiyonu olsa güzel olurdu.
İyi yazılmış çözümler ve açıklamalar, ayrıca “bu kod parçası neden istenen layout’u oluşturmuyor?” gibi debugging görevleri de olsa iyi olur.
CSS sorunlarını debug etmede ChatGPT oldukça yardımcı oldu. Her zaman doğru değil, ama genelde doğru yönü gösteriyor. Yine de CSS’in gerçekte nasıl çalıştığını daha derinlemesine anlamak istiyorum. Kitaplar ve eğitimler de okudum; sonunda bunun bir kurallar kümesi olduğunu biliyorum, ama doğru uygulamak zor.
CSS’i düzelterek istediğim görünüme getirecek şekilde yeniden yazmasını sık sık istiyorum; dokümanlarda aramaktan çok daha hızlı hallediyor.