Chrome'da css3'ün flexbox'ında oynuyorum (bunun için tarayıcılar için endişelenmenize gerek yok). İçeriğimi istediğim gibi hazırlamak için ikna etmekte zorlanıyorum. İşteDikey olarak genişletilmeden çok sütunlu düzen oluşturmak için css3 flexbox nasıl kullanılır?
benim girişimi bir jsFiddle var: İşte benim hedefinin bir karalama http://jsfiddle.net/Yht4V/2/ Bu onun yüksekliğini genişleyecektir her .group
dışında büyük işe ziyade birden fazla sütun oluşturmak gibi görünüyor.
Ben yaygın bir buraya flexbox'a kullanıyorum. body
, sayfanın kalan yüksekliğini alarak #content
div ile dikey olarak ortaya çıkar. Her .group
, yatay olarak düzenlenmiştir. Son olarak, her bir .item
, bir sargı ile dikey olarak bir .group
içinde düzenlenir.
Ne yazık ki, her bir .group
, #content
yüksekliğini artırarak tek bir sütun olarak biter, bu da dikey kaydırma çubuğuna neden olur (istenmeyen). Her bir .group
'un yüksekliğini sabit bir piksel boyutuna ayarlarsanız, öğeler birden fazla sütuna bölünür, ancak bu, flexbox'ın akışkanlığını bozar. Burada sabit yükseklikleri gibi görünüyor: http://jsfiddle.net/Yht4V/3/ Yani
, her şey sabit yüksekliği ayarlamadan flexboxes ile yönetilmektedir beri benim #content
div dikey genişlemez böyle ulaşır? Ebeveyninin boyunu genişletmek ve bir kaydırma çubuğuna neden olmak yerine, daha fazla sütun tetiklemek için flexbox bekliyordum.
:-) benim için çok iyi çalıştı? Öğeler neden 200 piksel genişliğe sahip? Herhangi bir grubun sütunlara sahip olması ya da sadece birincisi olması gerekir mi? Herhangi bir taşma olmalı mı? (her gruba 100 öğe eklerseniz) Flexbox, istediğiniz gibi istiflenebilir sütunlar oluşturmaz, bu, esnek kutu için bir düzen hedefi değildir.Senin resminde ne istediğini elde etmek kolay, sadece CSS ile çok zor veya imkansız kılan tüm ölçekleme gereksinimlerini bilmiyorum. – skyline3000
@ skyline3000 Düz HTML/CSS ile bir Windows 8 "metro" tarzı tasarım deniyorum, bu yüzden ideal olarak her grup, gerektiğinde yatay olarak sütun ekler ve yatay bir kaydırma çubuğu 'iff' (böylece önce dikey olarak öğeleri ekleyin, böylece kaydırma neden olur sütun yatay olarak). Bunu JS ile gerçekleştirmenin yollarını çizebilirim, ancak Webkit'te yalnızca HTML5/CSS3 ile yapılabileceğini umuyordum. –
@ skyline3000 Size doğrudan soruları yanıtlamak için: Evet, ekranın yükseklik/genişliğinden bağımsız olarak sıvı olmalı (ekran boyutu üzerinde kontrol sahibi değilim). Her öğe tasarım tarafından sabit boyuttadır, bu benim nihai uygulama için geçerli olacaktır. Belki de bu kesin boyutlar değil, ama yine de sabittir. Son olarak, yukarıda belirttiğim gibi, elemanlar dikey olarak doldurmalı ve daha sonra yatay olarak taşmalıdır. –