Konteyner gibi ya da değil bir tablo kullan?

9 Cevap php

Ben bir ana tablo kullanarak ve tablonun içine içeriğe sahip benim tüm web sitesi oluşturduk.

Bazı kişi bu yanlış önermek, ve benim durum özellikle ne yapacağını bilmek istiyorum.

Benim index.html ben bir <table align="center"> ve bunun ardından tüm içeriği var.

Şimdi içerik DIV'leri şeklinde olan ve hepsi göreceli konumlandırma, bu yüzden bu masaya göredir.

Örneğin:

<table align="center">
  <tr>
    <td>
      <div style="position:relative; left:14px; top:50px;">

              CONTENT HERE... (Form, divs, images)

      </div>
    </td>
   </tr>
 </table>

Ben sadece tarayıcı uyumluluğu aşamasına aldık.

Herhangi bir değişiklik yapmadan, web siteme FF, Safari, Chrome ve Opera mükemmel çalışır. IE ile tek sorun.

Yani benim Q için, eğer beni nerede, sen benim düzeni değiştirmek ve tabloları kaldırmak ve bunun yerine çok daha fazla css ve çok daha DIV'leri kullanabilir, ya da ben ne ile gitmek olurdu?

Ve bana cevap eğer, sadece cevap bana vermeyin lütfen, ama aynı zamanda bir "neden" başka bir deyişle ... olduğunu bana argümanlar ve gerçekleri vermek ...

Teşekkürler

9 Cevap

Ben size sadece tek bir tablo hücresinde bulunan DIV sahip alacağı daha fazla bir şey verir sizin tabloda bir şey görmüyorum. Hala ebeveyn olarak DIV dayalı içeriğini düzenlenmesi ediyoruz, bu yüzden size yardımcı div dışında ekstra biçimlendirme tam olarak nasıl? (Eğer IE sorun yaşıyorsanız söylüyorlar çünkü görünüşe göre sorun yaşıyorsanız) Eğer DIV merkezleme konusunda endişeli iseniz, stil veya CSS margin-right:auto; margin-left:auto set.

Web geliştirme deneyimi bir on yıl, bir tablodaki bir web sitesi inşa içeriği manipüle ederek web sitesinin düzenini kontrol etmek için çalıştıkları için geçici bir çözüm olduğunu söylüyor. Bu size başka seçenek yoksa aşağı yürümek istemiyorum gözyaşları bir parkuru. Orada bir tablo kullanarak iyi bir fikir olduğunu nedenleri bir dizi vardı, ama bu nedenlerle hemen hemen hiçbiri bugün hala geçerlidir.

Temel olarak, bu "tasarım stratejisi" zamanla korumak için web sitesi zor hale getirecek, ve büyük ölçüde anlamlı bir şekilde verilere erişmek için gözlerin bir set vermeden herkes için yeteneğini azaltır. Biz sadece web "dinleme" Körlerin bahsetmiyoruz, Unutmayın, biz de indeksleme örümcekler, botlar ve birlikte web bireysel bit tutkal olanlar arkası sahneleri bitlerin tüm bahsediyoruz.

CSS içine bak. Biraz öngörü ve yanlış bir başlangıç ​​ya da iki, CSS, korumak (gözleri olmayanlar dahil) herkes tarafından daha okunabilir ve büyük ölçüde riske atmadan içerik VEYA düzeninize bazı değişiklikler yapmak için size esneklik sağlamak için web sitenizin daha kolay hale getirecek "Diğer" öğesini karıştırmasını.

CSS odaklı düzeni kullanarak, tablo etiketleri dışarı rip ve sadece kalan div etiketleri paketi. Bu CSS kutu modeli ile tanımak için bir veya iki gün sürebilir iken, bu kaybetmek asla öğreniyor ve sadece zamanla sizin için daha değerli olacaktır.

Soru "Bana olsaydı, benim düzeni değiştirmek ve tabloları kaldırmak istiyorsunuz?" Oldu Benim cevabım: "Evet".

Neden gelince, SO birkaç kez sordu oldu. En popüler konu olan this one.

Onlar CSS kurallarının çok tatbik edilemez olarak çalışan belirli düzenleri önlemek gibi Tablolar genellikle size çok sıkıntı verecektir. Ve düzeni için anlamsal olarak doğru olmaması yanı sıra, Tablolar işlemek için daha uzun sürer.

İşte tüm bu tarayıcılar ve IE böcek çalışan aslında sitesi koşullu yorumlar ile sabit olabilir eğer, o zaman onun haddini bilerek bırakarak iyi olurdu, söyleniyor.

Kesinlikle tabloyu şerit ve onu değiştirmek: tablo konteyner divs / ne yaptığını taklit gövde stilleri.

There are a number of reasons: 1) accessibility: people using screen readers have different access to your site and it's top down, left to right..they need to hear unsemantic and pointless 'table, table row, table data' all over the place. 2) web spiders don't like tables 3) maintanence is easier on a site with divs and not tables: it's easier adding an element without tables.

Tabloları kullanarak korkmayın, ama sekmeli veri için bunları kullanmayın: sürece tüm unsurların anlamsal kullanılır ve erişilebilirliğini arttırmak isteğe bağlı unsurlar kullanıldığı gibi, kod herkes için kullanılacak doğrulamak ve kolay olmalı ve tarayıcılar için ekran - ve değiştirmek için.

Bir tablodan değişiklik yoksa, o zaman bir td tam bir div olarak aynı tarz olabilir fazlalaştı - yuva gerek bir td içinde bir div var. Bir td bir satır içi unsurdur ve bir div bir blok düzeyi öğesi olduğundan o da syntacically yanlış. Bunu değiştirmek, ama neden rahatsız olabilir?

Peki ... tabloları kaldırmak muhtemelen önemsiz bir görev olmayacak, ama, bir süre etrafta bu siteyi istiyorum için gidiyoruz düşünüyorum, ve ekran okuyucuları kullanan kullanıcılar tarafından erişilebilir olması, ya da iyi bir SEO 'semantik biçimlendirme ve css kullanarak Recoding içine bakmak isteyeceksiniz:

Başlamak için bazı iyi haberler:

Bu onlar için tasarlanmış ne değildir gibi gerçekten, düzeni için tabloları kullanmanız gerekir. Bu büyük erişilebilirlik sorunları korumak için ve neden zor çok kıvrık ve dağınık biçimlendirme yol açar.

Web sitenizi hazırlamak için doğru yolu sadece div elemanlarını kullanarak kendinizi sınırlamak, ama semantik uygun ne olursa olsun eleman kullanmak zorunlu değildir. div elemanları esasen genel düzen amaçlı iş sadece anlamsal boş kaplar vardır, ama şeylerin listeleri için, örneğin, ya bir ol veya {[(3 kullanarak olmalıdır )]} (öğeler onlarla ilgili sipariş çeşit olmasına bağlı olarak). Tablolar gelince, onlarla doğal olarak yanlış bir şey yok, but onlar sadece düzeni için, sekmeli veri sunmak için kullanılmalıdır!

CSS birincil avantajı, (biçimlendirme kendisi yani) yapısal şartname, sayfanızın görsel özelliklerini ayırmak için izin vermesidir.

Siz daha derinlemesine bu şeyler hakkında okuyun here ve here. Olabilir

Use Tables:

Bu yanlış bir şey yoktur. Tablo kadar bina web sitelerinin en eski yöntemdir ve bu nedenle daha modern tarayıcılar destek bekleyebilirsiniz. Eğer sabit bir genişliğe sahip web sitenize bina varsa o tabloları kullanmak için gerçek bir artı olduğunu. Tablo kullanımı ile CSS büyük ölçüde azalır ve bu da daha az çapraz tarayıcı sorunları anlamındadır. Eğer GWT onların Widget'lar ve Panelleri bina nasıl bakarsanız tablolar kullanılarak tamamen.!

Ben CSS büyük bir hayranı olduğunu ve DIV ait ama yapmanın doğru yolu muhtemelen IE etrafında olduğunda yapmanın en iyi yolu değil sanırım.

Should you Use Tables for Layouts?

Kenara popüleri, bunu bu şekilde düşünüyorum. Karmaşık siteleri özellikle bir proje üzerinde birden çok geliştiriciler ile başlığının ayrılmasını, altbilgi, kenar çubuğunu ve navigasyon gerektirebilir. Farklı dosyalarda bu bölümlerde ile, satır ya da sütun nereye gider anlamaya imkansız yanında bulunuyor. Divlere ile o kadar çok basittir.

Eğer fark varsa navigasyon yerine tarafı üstünde ne olmalıdır. Eğer tabloları kullanıyorsanız, sütunları yeniden gerekir. Divlere ve uls ile sadece sol lis yüzer ve div genişliğini artırmak istiyorum, belki açık bir hakkı veya her ikisi de ekleyin. Sooooo td ile bulmaktan daha basit nerede ve ne tr gider.

Bu (sıkı olarak align niteliği hariç) doğrulayıcı geçebilir, ama sadece yaşatılabilir veya ölçeklenebilir ya da yararlı değildir.