Centrum Społeczności
Advertisement

Tabele mają za zadanie ułatwić umieszczenie danych w prosty i czytelny sposób, często wraz z możliwością ich sortowania. To jednak na FANDOMIE dość kontrowersyjny temat jeśli w grę wchodzą urządzenia mobilne. Dlaczego? Wiele użytkowników, czy nawet tutejsza strona pomocy zaznacza, że można ich używać do tworzenia układu strony. Możemy znaleźć więcej tabel użytych do pozycjonowania, niż faktycznego przedstawiania informacji. Na urządzeniach mobilnych gdzie ekran jest dużo mniejszy, taki nieresponsywny układ nigdy nie wyświetli się dobrze, gdyż jest on dostosowany do innego ekranu. Przez to wiele osób porzuca kompatybilność z Mercurym dla ich wygody, pomimo że to oni używają dostarczonych im narzędzi w niewłaściwy sposób, ale nie o tym ten blog.

Chcę tutaj przedstawić jak tabele są interpretowane przez mobilną skórkę i jak zadbać o to by właściwie wyświetlały się na urządzeniach mobilnych. Przed przeczytaniem polecam zobaczyć blog "W obronie Mercury'ego", który opisuje dlaczego warto popracować nad dostępnością zawartości naszych wiki.

Tabela tabeli nie równa[]

Tabela na Mercurym może się wyświetlać na trzy różne sposoby:

  • "przenośna" tabela - zwykła tabela używana do przedstawiania danych przystosowana do urządzeń mobilnych
  • tabela z colspanem/rowspanem - tabela, która w niektórych miejscach łączy komórki, zamiast tła posiada krawędzie, które pozwalają zobaczyć gdzie takie połączenia występują
  • zagnieżdżone tabele - tabela w tabeli, nie posiada żadnych krawędzi - najczęściej stosowane do pozycjonowania elementów


Mercury i tabele - infobox z gridem

Infoboks nie musi wyglądać jak infoboks

Zacznijmy od końca: tak jak wcześniej wspomniałem zagnieżdżone tabele nie powinny być używane do tworzenia układów. Zamiast tego możesz np. zaprojektować specjalny infoboks, który będzie poprawnie wyświetlał ładnie dane na Mercurym i specjalnie go ostylować za pomocą np. grida by wyglądał tak jak tabelkowy poprzednik. Jeśli to nie możliwe, możesz oznaczyć tabelę jako ukrytą na Mercurym za pomocą typu szablonu, bądź okalając go divem z klasą hidden, która automatycznie ukrywa daną zawartość na Mercurym. Jednak żadna z tych opcji nie działa na ten moment w aplikacjach społeczności (np. Game Guides).


Mercury i tabele - colspan z data-portable

Tabela z colspanem i data-portable="true"

Następny typ: colspan/rowspan jest często używany do łączenia kolumn w jedną, czy odseparowanie części tabeli od drugiej. W pierwszym wypadku możemy rozbić je na dwie osobne, bądź złączyć zawartość w komórkach i oddzielić je np. niełamiącymi spacjami. W drugim wypadku tak jak na podanym zdjęciu możemy się pokusić o ustawienie parametru data-portable="true" w tabeli, przez co zostanie zastosowany normalny wygląd tabel. Nie rekomenduję używania tego w każdej sytuacji, ponieważ mogą pokazać się związane z tym błędy i jeżeli na taki krok się decydujesz polecam sprawdzić, czy na pewno wszystko wyświetla się poprawnie i czytelnie.


Dla zaawansowanych[]

Tabele przez Mercurego są przed wyświetleniem sprawdzane, czy nie zawierają one zagnieżdżonych tabel i czy nie zawierają colspanów/rowspanów, dzięki czemu do tabel przypisywany jest odpowiedni wrapper (div z odpowiednią klasą) i właściwość data-portable, które zmieniają sposób jej wyświetlania. Te, które zawierają w nazwach przypisanych klas cząstkę "infobox", są przetwarzane inaczej.

Zwykłe tabele dostają specjalne przenośne style z tłem i nie zawierają żadnych krawędzi pomiędzy poszczególnymi komórkami. Jest ona otoczona divem z klasami: article-table-wrapper i portable-table-wrappper, a ona sama otrzymuje parametr data-portable="true".

Jeżeli tabela zawiera colspan/rowspan do tabeli nie zostanie dodany parametr data-portable, a okalał ją będzie article-table-wrapper. Spowoduje to, że tabela nie będzie miała tła, ale pomiędzy komórkami w tabeli zostanie zastosowane obramowanie (1px solid #F2F6FA). Możemy również na niej zastosować style z "przenośnych" tabel poprzez manualne ustawienie atrybutu data-portable.

W wypadku zagnieżdżenia Mercury nie stosuje żadnych krawędzi. Wartość data-portable w takich tabelach jest ustawiona na false i nie można jej manualnie zmienić, a główna tabela jest dodatkowo otoczona divem z klasami: article-table-wrapper i portable-table-wrappper.

Kod odpowiedzialny za tabele na Mercurym[]

Przetwarzanie tabeli[]

Tworzenie wrappera[]

Style tabel[]

Podsumowanie[]

Nawet pomimo poprawek zaproponowanych wcześniej, tabele ze względu na swoje rozmiary nie będą dopasowane do urządzeń mobilnych. Co prawda tabele można horyzontalnie przewijać, ale czasami powinniśmy też ograniczyć liczbę występujących kolumn. Starajmy się też unikać wpychania wszystkiego na siłę do tabel. Nie ma potrzeby zawierania jej w każdym artykule, gdy trzeba coś wymieniać.

Chciałbym tutaj również obalić twierdzenie:

Staraj się nie zmieniać niczego oprócz wyglądu tabeli za pomocą niestandardowych klas lub atrybutu style. Natomiast możesz bezpiecznie korzystać z standardowych klas, takich jak article-table. Blog "W obronie Mercury'ego"

Dopóki nie używamy w tabeli predefiniowanych klas przez Mercurego nie będzie miało to żadnego wpływu na to jak tabela się będzie wyświetlała. Możesz spokojnie używać zarówno klas wikitable jak i article-table, czy dodać sortable, a nawet niestandardowych klas, dopóki nazwy nie będą się kłócić, co jest bardzo mało prawdopodobne. Tak samo jak w innych przypadkach tutaj też jest ignorowany atrybut style i jego zawartości na Mercurym nie uświadczymy. W sekcji "dla zaawansowanych" zawarłem co konkretnie wpływa na wygląd tabel.

Mam nadzieję, że choć trochę pomogłem z zachowaniem kompatybilności tabel na urządzeń mobilnych. Do następnego!

Pozostałe blogi
100
Typy szablonów
100
Mercury i tabele
TERAZ CZYTASZ
Advertisement