Poprzedni wpis (Free Software lockdown) | Następny wpis (Topre, topre)

Po raz kolejny porażka

Nie pamiętam już ile razy przysiadałem (w celach czysto edukacyjnych, aby zrozumieć jak to działa) do zrobienia sobie wielokolumnowego układu dokumentu HTML, z kilkoma wymaganiami, które zdają się obecnie wykluczać:

  • kolumna główna o szerokości względnej, dopasowującej się do wielkości okna przeglądarki;
  • kolumny boczne o stałej szerokości, wyrażonej w jednostkach em;
  • kolumna główna zdefiniowana w kodzie HTML jako pierwsza;
  • bez gremlinów w typie poziomego paska przewijania w IE6;
  • i jak najmniej boilerplate (niestrukturalnych div-ów).

Nie ma tego wiele. Co jakiś czas przeglądam to, co znajduje mi Google, ale wciąż powtarzają się te same triki: a to kolumny boczne trzeba definiować jako pierwsze, a to nie da się ustalić ich szerokości, a to znowu coś innego. A jeżeli znajduję gdzieś gotowy, działający szablon, to jego kod jest tak pogmatwany, że tylko łapię się za głowę.

Jak dla mnie, dowodzi to tylko jednego: CSS, choćby nie wiem jak był użyteczny w innych dziedzinach, w obecnej postaci do tworzenia układów stron się nie nadaje. Gdy tylko chce się wyjść poza ustawianie wielkości czcionki, obramowania elementu czy koloru tła, okazuje się, że używanie do tego celu CSS przypomina dokręcanie śrubek przy użyciu łyżki. Ktoś mógłby argumentować, że web to nie gazeta i kolumny są wbrew naturze WWW, ale w takim razie oznaczałoby to tylko jedno: że WWW nie nadaje się do użycia sterowanego zapotrzebowaniem. Bo ewidentnie potrzeba dzielenia treści na kolumny istnieje, a wręcz ze zwiększaniem się rozdzielczości monitorów ta potrzeba staje się coraz bardziej naoczna.

Więc co? Flash? Dopiero Flash to nie jest web (gdzie tu dokument, połączony z innymi dokumentami systemem dowiązań?). Czekam od kilku lat na rozwiązanie tego problemu w sposób kompleksowy, pewnie będę czekał jeszcze długo, i wszystko wskazuje na to, że się nie doczekam.

Komentarze (3)

#1 Eluś skomentował(-a) 18 kwietnia 2008 o 23:45

No i jeszcze pewnie byś chciał żeby wszystkie 3 kolumny były wyraźnie oddzielone (aż do samego dołu). No i pewnie jakaś stopka by się przydała - wyświetlana pod najdłuższą z kolumn :)

Nie wiem czemu narzekasz na CSS. Przecież za pomocą tabelek też tego nie zrobisz (tzn. kolumna główna nie będzie pierwsza jeśli ma być w środku).
Zresztą dzięki CSS można zrobić to samo co na tabelkach ale bez nich - (display: table, table-row, table-cell).

Kolumny nie są wbrew naturze WWW. http://www.w3.org/TR/css3-multicol/
Zupełnie odrębną sprawą jest stopień implementacji CSS w przeglądarkach.

Budowanie layoutów na em-ach też jakby powoli zaczyna tracić sens - coraz więcej przeglądarek obsługuje powiększanie stron (nie tylko powiększanie tekstu).

#2 radious skomentował(-a) 19 kwietnia 2008 o 10:43

Doskonale Cię rozumiem, od zawsze odnoszę wrażenie jakby CSS było tworzone przez pijanych malarzy dla rysowników komiksów, a tylko przypadkiem ktoś wpadł na pomysł by używać tego w interneci:( Mnie zawsze brakowało rozsądnego ustawiania wielkości elementów zależnie od siebie lub elementów po których się dziedziczy. Jednym słowem PITA:(

#3 jarek skomentował(-a) 20 kwietnia 2008 o 11:57

Eluś: nie wspomniałem ani słowem o tabelach. Wkurza mnie strasznie, jak "wyznawcy standardów" mają tylko w zanadrzu argument o tabelach, gdy wspomina się o niedoborach funkcjonalnych CSS.

Nie chodzi o to, że tabele są lepsze czy gorsze od CSS. W ogóle nie chodzi o tabele. Chodzi o to, że CSS jest marny, jeżeli chodzi o tworzenie układu strony. Porównuję go nie z tabelami HTML, lecz z LaTeX'em. Widzisz? W porównaniu do LaTeX'a CSS jest jak łyżka używana do przykręcania śrubek...

Skomentujesz?

* 


* 


* oznacza pole wymagane