A kolejny mój layout będzie chyba o tabelki oparty
30/10/2008, 01:46:12 | Komentarze zostały wyłączone. | WWW
Z góry mówię: Nie znam się na webdesignu, ale jeśli się na czymś nie znasz to jeszcze nie znaczy, że nie możesz sobie ponarzekać, prawda?
Zastanawia mnie jedna rzecz, dlaczego w designu tabele nie są już "trendi"? Kiedyś większość layoutów było na tym oparte. Ktoś powie, bo tabele są do reprezentowania danych tabelarycznych, danych z arkuszów kalkulacyjny itp. Potrafię oczywiście zrozumieć taką logikę, ale jaka teraz najczęściej wybierana jest alternatywa? DIVy + CSS. DIVy oczywiście też są złe, powie ktoś drugi, bo nie mają żadnego semantycznego znaczenia, a jak wiadomo semantyka jest bardzo ważna, bo 90% internatów przegląda kod źródłowy każdej oglądanej przez nich strony . A nawet jeśli nie, to ułatwiamy robotę wyszukiwarkom, i możemy cieszyć się wyższym rankingiem w Google (albo i nie). Oczywiście HTML5 i tego typu wynalazki mają zmienić postać rzeczy, i pozbyć się nadmiaru DIVów. Teraz zastanawiam się nadal, jak większość layoutów np. dwu kolumnowych jest tworzona? Para divów, jeden ma ustawioną właściwość float na right na przykład. Tylko się teraz nadal zastanawiam, ok - float, ale czyż float nie służy do definiowania sposobu pływania elementu? Coś typu, otaczanie tekstem np. obrazka, bo przecież nie można powiedzieć że coś po stronie prawej, zwane sidebarem, tam pływa? Więc znowu używamy czegoś do czego dana rzecz nie jest stworzona, czym się to różni od używania tabel?
CSS jest bardzo dobrym narzędziem dla serwisów które są obciążone, gdyż wystraczy załadować arkusz stylów raz, dla każdej z podstron. Zastanawiam się czy dobrym duetem do tego nie byłyby ramki? Ale one nie są już na "topie". Pomyślmy ramka z menu ładuje się raz, zmienia się tylko treść w ramce głównej. Ile przepustowości łącza zaoszczędzone! Śmiem twierdzić że więcej niz w przypadku użycia samego CSSa. Dodatkowo jakie plusy, przesuwając stronę menu się nie przesuwa (oczywiście podobny/taki sam efekt można uzyskać także w CSSie). Ktoś powie: masz rację, ale jest minus, zmieniając kolejne podstrony, adres w pasku adresu się nie zmienia, i ma rację, trudno w ten sposób linkować do interesującego nas np. artykułu...
... ale możemy przecież użyć JS'a! Przecież już to robimy teraz, zmieniając strony bez przeładowania strony właściwiej, zmienia się tylko część adresu po "#". Nie potrafię tego opisać dokładniej i sprawniej, ale rozwiązanie to jest szeroko stosowane np. w Picassa Web Albums od Google Inc., i myślę że większość osób się z nim spotkała. Ale co gdy mamy wyłączony JS, albo korzystamy z przeglądarek mobilnych? Włączyć JS, skorzystać ze specjalnej wersji serwisu? A gdzie szeroko reklamowane "accessibility"?
Strony trzeba tworzyć zgodnie ze standardami, i wszystko powinno się walidować w walidatorach od W3C. Zastanawiam się więc po co wsteczna kompatybilność, czy przeglądarki z dnia na dzień ją stracą, i nie będą już wspierać "źle" napisanych stron? Nie wydaje mi się. Zresztą posprawdzajmy w walidatorach najpopularniejsze strony w internecie, większość z nich nie przejdzie walidacji poprawnie. Ale kogo to obchodzi? Mnie nie, strona ma się wyświetlać dobrze i taki jest jej główny cel, oczywiście jeśli ktoś chce być zgodny ze standardami jego wola. Natomiast śmieszy mnie pokazywanie właśnie zwalidowanych tu i ówdzie stron, tylko dla samego faktu że jakiejś walidacji nie przechodzą, "bo ja bym im tą stronę napisał lepiej i by walidowała się w walidatorze".
Zapraszam do ewentualnego komentowania i wyprowadzania mnie z błędu.
Używanie divów ma wiele ważnych zalet, przykładowo:
a) w każdej chwili możesz zmienić coś w wyglądzie strony bez ruszania kodu bazowego, co jest bardzo przydatne gdy więcej osób pracuje nad frontendem
b) nie robisz burdelu użytkownikom komórek i innych mobilnych urządzeń korzystających z neta
c) zmniejszasz objętość kodu strony (CSS jest ładowany raz, a potem wisi w cache)
d) na tabelkach będziesz miał dużo problemów z JS (głównie mówię o manipulacjach DOM)
e) utrudniasz ludziom usercss (tak, wiem, ułamek procenta, bla bla bla)
f) korzystając z tabelek zaciemniasz kod sobie i innym (wierz mi, że pracowanie w więcej osób na designie 'hybrydowym' - tabelki i divy - to najczystsza na świecie ma-sa-kra)
Można tak wymieniać cały dzień, ale pewnie ktoś inny już lepiej napisał, użyj google i poczytaj :)
banan (#) 30/10/2008 - 08:20:47
Popieram D4rky.
I jeszcze to, że z tabelami część CSSa zwyczajnie odpada (position: relative/absolute). Fuj!
Tak czy inaczej obecny design robie na tabelach. :D (Znaczy się template do phpBB... próbowałem nowocześnie, ale nie ma sił.)
sharnik (#) 30/10/2008 - 09:03:50
Pecet:
> ale jeśli się na czymś nie znasz to jeszcze nie znaczy, że nie możesz sobie ponarzekać, prawda?
Można, ale to Ty ponosisz ryzyko wyjścia na debila.
> DIVy oczywiście też są złe, powie ktoś drugi, bo nie mają żadnego semantycznego znaczenia, a jak wiadomo semantyka jest bardzo ważna, bo 90% internatów przegląda kod źródłowy każdej oglądanej przez nich strony .
DIVy oczywiście też są złe, powie debil, dodajmy. Jest ogromna różnica między elementem semantycznie transparentnym (jak DIV - pozbawionym znaczenia), a elementem semantycznie wprowadzającym w błąd. Chociażby taka, że ten pierwszy jest okej, a ten drugi nie.
Zapominasz również, że to HTML ma być semantyczny, a nie CSS. Zadaniem CSS jest jedynie odpowiednie zapisanie pożądanego wyglądu strony. Zastanawianie się 'do czego powinien służyć float' to idiotyzm.
> Nie potrafię tego opisać dokładniej i sprawniej, ale rozwiązanie to jest szeroko stosowane np. w Picassa Web Albums od Google Inc., i myślę że większość osób się z nim spotkała.
Nie używałbym jako przykładu galerii zdjęć o najbardziej gównianym interfejsie.
Poza tym, zapominasz o podstawowej sprawie. Poważniejsze strony WWW tworzą programiści i, jeśli opierają układ na tabelach, to będą się z nim duuuużo czasu użerać. Aż sami potem zrozumieją swój błąd.
Ok dzięki za wyjaśnienia, EOT.
Może faktycznie trochę przesadziłem z narzekaniami.