Formularze, a dane tabelaryczne
Sunday, 29. January 2006, 17:45:29
Tak dużo się pisze o tym, że tabele powinny służyć tylko do danych tabelarycznych. Zgadzam się z tym. Doszedłem jednak do nieoczekiwanego wniosku, że formularze to przykład danych tabelarycznych.
Przejdźmy do konkretów. Przykładowy formularz składa się z:
- bloku, w którym jest umieszczona jego treść
- par właściwych pól formularza i ich opisów
- właściwych pól formularza
- opisów właściwych pól formularza
Czyli mamy wszystko, co jest potrzebne do zbudowania tabeli css. Teoretycznie. W praktyce bowiem pojawiają się problemy.
Pierwszy problem nazywa się Microsoft Internet Explorer i jego 80% udziału w rynku. Jest to dostateczny powód, aby nie stosować tabel css. Można się nad nim długo rozwodzić. Nie jest to jednak jedyny problem. Drugi to bardzo słaba obsługa formularzy przez CSS.
Może teraz krótkie porównanie. Co trzeba zrobić, aby uzyskać napis w czerwonym kwadracie? Są to 3-4 instrukcje CSS: dwie na określenie wymiarów kwadratu, jedna na określenie jego koloru i w razie potrzeby jedna na określenie, że jest to element blokowy. A co trzeba zrobić, aby uzyskać stosowne pole tekstowe w czerwonym kwadracie? Umieszcza się owe pole w dodatkowym elemencie xhtml, który jest stylizowany na czerwony kwadrat.
Niestety przez tyle lat nikt nie wymyślił, spójnej metody na stylizowanie elementów formularzy. Ich stylizowanie sprawia tak dużo problemów, że często najlepiej jest je zostawić w domyślnych ustawieniach. Jakby ktoś ustandaryzował stylizowanie formularzy, miałby problem ze wszystkimi przeglądarkami na rynku. Duże nadzieje wiążę więc z xform.
Teraz pora wrócić do naszych obecnych formularzy. Skoro trzeba zastosować dodatkowe elementy, a przeglądarka Microsoftu ma duże problemy z obsługą niezbędnych styli, najlogiczniejszym rozwiązaniem byłoby zastosowanie zwykłych tabel. Mamy w nich elementy table, tr, th i td, czyli wszystko, co jest nam potrzebne. Nawet nie treba dopisywać dodatkowych klas, w końcu normalne tabele nie znajdują się w elemencie form.
Oczywiście znaczna część formularzy nie wymaga stosowania tabel. Ale skoro tabele pokrywają sie z podziałem logicznym, można będzie je przy pomocy css odpowiednio przerobić. Aczkolwiek jeszcze nie badałem tego zagadnienia. W każdym razie uznałem, że stosowanie tabel w formularzach jest uzasadnione.
Przejdźmy do konkretów. Przykładowy formularz składa się z:
- bloku, w którym jest umieszczona jego treść
- par właściwych pól formularza i ich opisów
- właściwych pól formularza
- opisów właściwych pól formularza
Czyli mamy wszystko, co jest potrzebne do zbudowania tabeli css. Teoretycznie. W praktyce bowiem pojawiają się problemy.
Pierwszy problem nazywa się Microsoft Internet Explorer i jego 80% udziału w rynku. Jest to dostateczny powód, aby nie stosować tabel css. Można się nad nim długo rozwodzić. Nie jest to jednak jedyny problem. Drugi to bardzo słaba obsługa formularzy przez CSS.
Może teraz krótkie porównanie. Co trzeba zrobić, aby uzyskać napis w czerwonym kwadracie? Są to 3-4 instrukcje CSS: dwie na określenie wymiarów kwadratu, jedna na określenie jego koloru i w razie potrzeby jedna na określenie, że jest to element blokowy. A co trzeba zrobić, aby uzyskać stosowne pole tekstowe w czerwonym kwadracie? Umieszcza się owe pole w dodatkowym elemencie xhtml, który jest stylizowany na czerwony kwadrat.
Niestety przez tyle lat nikt nie wymyślił, spójnej metody na stylizowanie elementów formularzy. Ich stylizowanie sprawia tak dużo problemów, że często najlepiej jest je zostawić w domyślnych ustawieniach. Jakby ktoś ustandaryzował stylizowanie formularzy, miałby problem ze wszystkimi przeglądarkami na rynku. Duże nadzieje wiążę więc z xform.
Teraz pora wrócić do naszych obecnych formularzy. Skoro trzeba zastosować dodatkowe elementy, a przeglądarka Microsoftu ma duże problemy z obsługą niezbędnych styli, najlogiczniejszym rozwiązaniem byłoby zastosowanie zwykłych tabel. Mamy w nich elementy table, tr, th i td, czyli wszystko, co jest nam potrzebne. Nawet nie treba dopisywać dodatkowych klas, w końcu normalne tabele nie znajdują się w elemencie form.
Oczywiście znaczna część formularzy nie wymaga stosowania tabel. Ale skoro tabele pokrywają sie z podziałem logicznym, można będzie je przy pomocy css odpowiednio przerobić. Aczkolwiek jeszcze nie badałem tego zagadnienia. W każdym razie uznałem, że stosowanie tabel w formularzach jest uzasadnione.