Gönderen Konu: Tabular Data için TABLE yerine DIV kullanmak  (Okunma sayısı 1544 defa)

Tabular Data için TABLE yerine DIV kullanmak

« : 14.08.2009 18:26:36 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Selam arkadaşlar,
 
Biliyorum ki aranızda birçok güncel XHTML+CSS dünyasını takip edenler var. Yeni geliştirmekte oduğumuz bir library için bir tür karar aşamasındayız. Internette genel görüşler gruplandırırsak şöyle.
 
1) Herşey için DIV kullanın.
2) Dizayn blokları için DIV, tabular datalar için TABLE kullanın.
3) ısterseniz herşey için TABLE kullanmaya devam edin, her ikisinin de kendi avantaj/dejavantajları var.
 
şimdi ben 3'ü hiç tartışmak istemiyorum. Benim arada kaldığım nokta 1 ve 2. Aslında elbette ki TABLE tagi hala gayet geçerli, legal ve tabular data için en ideali, en kolayı. Ama bir biçimde, bir nevi homojen yapı için diyelim isterseniz DIV kullanmayı da uygun görüyorum. Ancak derdim DIVlerde yaşanan hizzalama problemleri.
 
Benim kendi tasarımım şu şekilde oldu. Dışta bir DIV, içte kolonları oluşturan DIVler, onların içinde cellleri oluşturan DIV'ler. Celller fixed hieght ve overflow hidden. Yani multiline desteklemiyor (hoş birşey değil ama ilk aşamada basit bir workaround). Bu şekilde kullanma amacım kolonları kolayca drag drop ile yer değiştirebilmek. Yine de çok memnun kalmadım.
 
Diğer alternatif elbette ki satır satır, yani verinin veritabanından çekildiği sıra ile oluşturmak. Bunda da DIV içi SPAN'ler ya da yine DIV'ler ile benzer birşey yapılabiliyor. Bu defa da widthlerin ya fixed ya da belli bir maksimum ile çalışması gerekiyor. Aksi taktirde yine kolonsal kaymalar gündeme gelebilir.
 
Özetle DIV'ler ile bu işi TABLE'daki hizzalamaları aynen simüle edecek kalitede yapmanın yolunu bulamadım. Script kullanmak ise çok büyük tablolarda inanılmaz yavaşlığa neden olacaktır.
 
Soru: Bu işi crossbrowser düzgün bir biçimde DIV ile yapmayı bilen var mıdır? Yoksa illa TABLE tek çözüm müdür?

Tabular Data için TABLE yerine DIV kullanmak

« Yanıtla #1 : 15.08.2009 06:44:01 »
Hızlı düğmeleri aç

ssg

İleti: 331

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
"homojen yapi" diye bir bahane ilk defa duyuyorum. butun html dokuman div tag'lerinden olusunca homojen mi oluyo? ee noluyo o zaman w3c'den madalya mi veriyolar?

illa bu yapmak istediginle kasacaksan display:table, display:table-row ve display:table-cell attribute'lerini kullanman gerekiyor dogru div'lerde.

Tabular Data için TABLE yerine DIV kullanmak

« Yanıtla #2 : 15.08.2009 17:58:11 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@ssg: Homojen yapı ile ilgili birkaç makale okudum. örneğin SPAN tagi kullanmayın diyenler var bir sürü. sonuç olarak her ikisi de CSS üzerinden aynı işlevlere çevrilebildiği için diyorlar ki DIV ve SPAN'in bir arada kullanımı gereksizdir, tek başına DIV yeterlidir. Elbette ki aynı görüşü savunanlar TABLE'ı da tamamen dışlıyorlar.
 
ılginç bir biçimde IE8 ile yaptığım testlerde "display" kullandığımda hiçbir değişiklik olmadığını gördüm, kaymalar yine meydana geliyordu. Belki başka browserlarda etkili oluyordur ancak birinde çalışmayanı diğerlerinde test etmiyorum zaten.

Tabular Data için TABLE yerine DIV kullanmak

« Yanıtla #3 : 16.08.2009 13:59:22 »
Hızlı düğmeleri aç

vigo


  • Ziyaretçi
valid html yazdığın sürece sorun yok... tabular data'yı da table olarak bas sorun olmaz... eğer div'leri cell / row gibi göstertmek için css attrb kullanıyorsan hiç kasma direk table yap... sadece thead th filan gibi şeyleri dikkatli yap sorun yok yani... ya da;

yok baba ben süper css'ci trend ciyim dersen;
def-list kullan...
dl dd dt gibi...

dl yi row gibi düşün;

ama kardeşim neticede yaptığın şey bi server-app'in front-endi ya da client ı ya da gui si ise, hiç yorma kendini... table rulez

Tabular Data için TABLE yerine DIV kullanmak

« Yanıtla #4 : 16.08.2009 14:51:41 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
ok, benim aklıma özellikle şu geldiği için tereddüt ettim arkadaşlar. 2005 yılı falandı, Almanya'daki Cebit fuarında MicroStrategy diye bir firmanın standını ziyaret ettim. Adamların reporting çözümleri falan var ve web tabanlı frontend'i de var. ıddiaları ise 50 GB ve üstü datalar ile diğer reporting çözümlerine göre çok hızlı çalışabilmeleriydi. Sanırım default olarak Oracle tabanlı bir sistemleri vardı. Her neyse. Bu adamların web arayüzünde tableların sütünları drag drop ile çok tatlı sort edilebiliyordu. Drag etmeye başladığın gibi tabledan kopup, bıraktığın yerde arası açılıp cuk oturuyordu.
 
Geçen gün ben düşündüm böyle birşeyi yapsam nasıl yaparım diye. Dedim biraz fedakarlık ile öncelikle tüm table'ı kolon kolon arraylere doldururum ve sonra satır satır değil de kolon kolon render ederim DIV'leri. Böylece rahatlıkla bir DIV'i drag drop yapabilirim kolon olarak. Çıkış noktam budur. Table ile aynı şeyi yapmak oldukça güç olsa gerek.