Omówię kolejno wasze argumenty i spróbuję pokazać w nich błędy.
Dobrze jest oddzielić zawartość od układu, ale jest to błędny argument; Myślenie stereotypowe.
To wcale nie jest błędne, ponieważ HTML został zaprojektowany celowo. Niewłaściwe użycie elementu może nie być całkowicie wykluczone (w końcu nowe idiomy rozwinęły się również w innych językach), ale możliwe negatywne implikacje muszą zostać zrównoważone. Dodatkowo, nawet jeśli nie było argumentów przeciwko niewłaściwemu użyciu tego <table>
elementu dzisiaj, może być jutro z powodu sposobu, w jaki dostawcy przeglądarki stosują specjalne traktowanie tego elementu. W końcu wiedzą, że „ <table>
elementy są tylko dla danych tabelarycznych” i mogą wykorzystać ten fakt, aby poprawić silnik renderowania, w procesie subtelnie zmieniając <table>
zachowanie się, a tym samym rozbijając przypadki, w których wcześniej był niewłaściwie wykorzystywany.
Więc co? Czy mój szef się przejmuje? Czy obchodzą mnie użytkownicy?
Zależy. Czy twój szef jest spiczasty? Wtedy może go to nie obchodzi. Jeśli jest kompetentna, będzie ją to obchodzić, ponieważ użytkownicy będą .
Być może ja lub moi programiści, którzy muszą dbać o stronę internetową ... Czy stół jest mniej konserwowalny? Myślę, że używanie tabeli jest łatwiejsze niż używanie divs i css.
Większość profesjonalnych programistów wydaje się być przeciwna[ potrzebne źródło ] . To, że tabele są mniej konserwowalne, powinno być oczywiste. Użycie tabel do układu oznacza, że zmiana układu korporacyjnego w rzeczywistości oznacza zmianę każdej pojedynczej strony. To może być bardzo drogie. Z drugiej strony rozsądne użycie semantycznie znaczącego HTML w połączeniu z CSS może ograniczyć takie zmiany do CSS i użytych zdjęć.
Nawiasem mówiąc ... dlaczego używanie div lub span nie jest dobrym oddzieleniem treści od układu i tabeli? Uzyskanie dobrego układu tylko z divami często wymaga dużej ilości zagnieżdżonych div.
Głęboko zagnieżdżone <div>
s są anty-wzorami, podobnie jak układy tabel. Dobrzy projektanci stron internetowych nie potrzebują wielu z nich. Z drugiej strony, nawet tak głęboko zagnieżdżone divy nie mają wielu problemów z układami tabel. W rzeczywistości mogą nawet przyczynić się do struktury semantycznej, logicznie dzieląc zawartość na części.
Czytelność kodu Myślę, że jest na odwrót. Większość ludzi rozumie html, mało rozumie css. To jest prostsze.
„Większość ludzi” nie ma znaczenia. Specjaliści mają znaczenie. Dla profesjonalistów układy tabel powodują znacznie więcej problemów niż HTML + CSS. To tak, jakby powiedzieć, że nie powinienem używać GVima ani Emacsa, ponieważ Notatnik jest prostszy dla większości ludzi. Albo że nie powinienem używać LaTeXa, ponieważ MS Word jest prostszy dla większości ludzi.
SEO lepiej nie używać tabel
Nie wiem, czy to prawda i nie użyłbym tego jako argumentu, ale byłoby to logiczne. Wyszukiwarki wyszukują odpowiednie dane. Chociaż dane tabelaryczne mogą być oczywiście istotne, rzadko szukają tego użytkownicy. Użytkownicy szukają terminów użytych w tytule strony lub podobnie widocznych pozycjach. Logiczne byłoby zatem wykluczenie filtrowania treści tabelarycznych, a tym samym znaczne skrócenie czasu przetwarzania (i kosztów!).
Tabele są wolniejsze. Należy wstawić dodatkowy element tbody. To jest orzeszki ziemne dla nowoczesnych przeglądarek internetowych.
Dodatkowy element nie ma nic wspólnego z wolniejszymi tabelami. Z drugiej strony algorytm układu tabel jest znacznie trudniejszy, przeglądarka często musi czekać na załadowanie całej tabeli, zanim zacznie układać zawartość. Dodatkowo buforowanie układu nie będzie działać (CSS można łatwo buforować). Wszystko to zostało wspomniane wcześniej.
Pokaż mi niektóre testy porównawcze, w których użycie tabeli znacznie spowalnia stronę.
Niestety nie mam żadnych danych porównawczych. Byłbym zainteresowany tym sam, ponieważ to prawda, że ten argument nie ma pewnego rygoru naukowego.
Większość stron internetowych, które wymagają aktualizacji, również potrzebuje nowej zawartości (HTML). Scenariusze, w których nowa wersja strony wymaga tylko nowego pliku css, są mało prawdopodobne.
Ani trochę. Pracowałem nad kilkoma przypadkami, w których zmiana projektu została uproszczona przez rozdzielenie treści i projektu. Często nadal konieczna jest zmiana kodu HTML, ale zmiany zawsze będą znacznie bardziej ograniczone. Ponadto zmiany konstrukcyjne muszą być czasami wprowadzane dynamicznie. Zastanów się nad silnikami szablonów, takimi jak ten wykorzystywany przez system blogowy WordPress. Układy tabel dosłownie zabiłyby ten system. Pracowałem nad podobną sprawą dla oprogramowania komercyjnego. Możliwość zmiany projektu bez zmiany kodu HTML była jednym z wymagań biznesowych.
Inna rzecz. Układ tabeli znacznie utrudnia automatyczne analizowanie stron internetowych (zgarnianie ekranu). To może brzmieć trywialnie, bo przecież kto to robi? Sam byłem zaskoczony. Skrobanie ekranu może bardzo pomóc, jeśli dana usługa nie oferuje alternatywy dla WebService dostępu do jej danych. Pracuję w bioinformatyce, gdzie jest to smutna rzeczywistość. Nowoczesne techniki sieciowe i usługi sieciowe nie dotarły do większości programistów i często skrobanie ekranu jest jedynym sposobem zautomatyzowania procesu pozyskiwania danych. Nic dziwnego, że wielu biologów wciąż wykonuje takie zadania ręcznie. Dla tysięcy zestawów danych.