[HTML, CSS] Problem z tłem w TR tabelki

0

Witam,
mój problem dotyczy czegoś, czego nawet w najdziwniejszych snach bym się nie spodziewał:


<html>
<body>

<table width="100%">
<tr style="background-image: url(obrazek.gif); background-repeat: repeat-y;"><td>  

    asdasdasda dasd as dasdas a s</td><td> sadas das das dsa </td><td> sad as das 

das</td>
</tr>
</table>

</body>
</html>

Ten kod działa tak, jak bym chciał tylko w Firefoxie. W FF obrazek w parametrze podany, gdy mamy do czynienia z nową komórką KONTYNUUJE od miejsca, w którym skończył, a nie zerując pozycję, z której zaczął. W IE i Operze ta pozycja jest zerowana- tak, jakbym styl ustawiał dla każdej komórki z tym tłem (nie wiem, czy dobrze to określiłem). To jest dobrze widoczne, gdy obrazek wielkością przekracza rozmiar komórek np. jest bardzo duży. Gdybym chciał tą metodą wstawić jeden, podłużny obrazek jako tło w TR, ten obrazek zamiast stanowić spójną całość, spowodował by powstanie serii niedokończonych obrazków z nim (kurde, ciężko mi to opisać- najlepiej wklejcie kod, bo mało go i dowolny, duży obrazek, a wierzę, że domyślicie się, co miałem na myśli, jeśli nie dość jasno się wyraziłem), zamiast tła tabeli w danym rzędzie. Z góry zaznaczam, że nie mogę ustawić po prostu stylu dla tabeli całej, bo chodzi mi tylko o to, by obrazek był w całości dany w jednym rzędzie, a nie we wszystkich- reszta ma być nienaruszona. Odpada też opcja pocięcia obrazka na wiele małych, bo szerokość tabeli jest procentowa i kolumn poszczególnych też- podstron jest wiele, więc nie mogę stwierdzić z tego powodu, jaka dokładnie szerokość będzie na danej podstronie. Przerabiam styl phpbb by przemo i ten błąd jest kluczowym niestety w tym, jak forum wyświetla się w Operze/IE a jak w FF. Proszę przy odpowiadaniu najpierw sprawdzić, czy faktycznie dana zmiana dała porządany efekt, bo wbrew pozorom to nie jest tak "oczywiste" naprawienie tego (sprawdzić w IE, Operze i FF).

Pozdrawiam i dzięki za odpowiedzi z góry.

0

poki co nie wiem co jest nie tak, i pewnie sie nie dowiem (ale sprobuje),
aczkolwiek opis jest czytelny i zrozumialy :)

edit:
no i nic nie wymyslilem..

ale szacun ze znalazłes cos co dziala tak jakby sie chcialo tylko w FF
na ogol to znajduje ja rzeczy ktore nie dzialaja w IE albo FF (jednym, albo obu) a w operze bez problemu, jakkolwiek bym to nie napisal..
ale najwiecej problemów robi FF (dziwne, spodziewalem sie tego po IE.. ale to chyba dlatego ze nie robie super-zaawansowanych lay'ów, z kazda mozliwa wartoscia css uzyta conajmniej pare razy :P)

0

Hmmm no nie na taką "optymistyczną" wizję liczyłem... Może jednak ktoś ma jakiś pomysł czy wie, co z tym zrobić?

Thx z góry.

PS U mnie w FF lepiej wyświetlają się strony, niż w Operze z reguły, ale nie jest to tak drastyczna różnica. :-P

0

No coz ucz sie robic strony :)

Generalnie NIE ROBIMY LAYOUTOW na tabelach - miedzy innymi z tego co opisales powodu. Zjawisko to ktore opisales ZAWSZE bedzie tak wygladalo i nie ma wtym nic nowego - znamy to zachowanie od HTMLa bodajze 2.0 czyli czasow archaicznych ktore byly dawniej niz wiekszosc ludzi zyje :)

Nowoczesne, nawet najprostrze strony powinny byc robione na divach z zastosowaniem porzadnych styli a tabele zarezerwowane tylko dla danych tabelarycznych! To jest tzw semantyczny HTML - poczytaj sobie.

Teraz co do FF - jest to jedyna jak dotad przegladarka zgodna ze standardami W3C ktore obowiazuja w tworzeniu stron www. To wlasnie FF powie Ci czy zrobiona strona jest dobrze i czy trzyma standardy. W dalszym rozrachunku plyna z tego same korzysci.

R

0

A może Ty sobie poczytaj to, co zostało napisane w pierwszej wiadomości, a trochę da Ci do myślenia, czemu robiona strona jest na tabelce, a nie na div'ach. Jeśli chcesz takie uwagi nieprzydatne dawać, to najpierw upewnij się, że wiesz, że masz pojęcie o tym, do czego się odnosisz! Robię styl do forum Przemo, a nie stronę od zera- chyba tylko samobójca by zaczynał od samego zera robić całość stylu tylko po to, by był na div'ach, a to by nie tylko nie rozwiązało problemu, a narobiło masę innych. Forum 4programmers jest też zrobione w dużej części na tabelce- może im też powiesz, by zaczęli pisać całość na div'ach? Problem rozwiązałem już sam, a w zasadzie znajomy mi trochę podpowiedział (sam był zaskoczony zresztą tym błędem nieco) i znalazłem sposób i na to. Mimo to dziękuję pierwszemu rozmówcy, że chociaż starał się pomóc i uważnie czytał to, co zostało napisane, a nie dawał nieprzydatne komentarze. [browar]

// 4p bez tabelek to tylko kwestia czasu - Ł

0

dla tego tr-a możesz dać
display: inline-table;
width: 100%;

Nie pytaj mnie dlaczego działa. A romek ma rację - nie rób layoutów na tabelkach, bo to straszna wiocha :)

0

id02009: nie działa niestety u mnie dla IE. Dla Opery chyba tak, więc ostatecznie: mógłbym niby z użytkowników IE zrezygnować po prostu... ale to mało eleganckie rozwiązanie.

Niemniej statystyki:
bBulletin
SMF
php fusion
ip.board
punbb
phpbb by przemo
Joomla
oraz wspomniany: Coyote z 4programmers na koniec.
Wszystkie te fora zrobiono na tabelkach. Tylko phpbb3 udało mi się znaleźć z for, które zrobiono inaczej.

Dla tych, co tak usilnie próbują wmówić, że forum na tabelkach robione jest "złe, be i w ogóle" coś, co ich nieco uświadomi, poza wspomnianymi statystykami:

Cytat z http://www.kurshtml.boo.pl/

Czasami osoby początkujące, dowiadując się, jakie to "złe" są tabelki, próbują w każdym przypadku zastępować je elementami

...
. Tymczasem zwykle jest to tak samo niepoprawne semantycznie, jak ich nadużywanie. W tabelach powinny być prezentowane dane tabelaryczne, które obejmują powtarzający się zbiór elementów (wiersze) tych samych typów (kolumny). Zwykle daje się łatwo rozpoznać, czy w określonym przypadku powinno się użyć tabeli:</p>
  1. W prezentowanych danych można wyróżnić poziomy lub/i pionowy nagłówek - może go nawet nie być, ważne żeby dało się go logicznie wyznaczyć choćby wirtualnie.
  2. Prezentujemy przynajmniej dwa egzemplarze krótkich danych o podobnym charakterze - będą to odpowiedniki kolejnych wierszy tabeli. Taka tabela może mieć nawet tylko jedną kolumnę danych (w takim przypadku zwykle mamy do czynienia z pionowym nagłówkiem, poprzedzającym kolumnę danych).

Jasne- można na siłę próbować wszystko zmieniać, by koniecznie tam były tabelki- nie widzę jednak sensu tego praktycznego dla for, ani żaden z twórców największych systemów forowych, prócz phpbb3 (wiem- nie wszystkie wymieniłem, ale w miarę możliwości upewniłem się do przynajmniej kilku tych większych, by dać obrazowo całość) i jak w cytacie wspomniano: jest to równie niepoprawne semantycznie, co nie używanie div'ów dla layoutów strony w tym wypadku akurat. Layout samej strony mam na div'ach, a forum siłą rzeczy i poprawności na tabelkach i tak większość systemów forowych działa.

Niemniej dzięki, że prócz upierdliwych uwag, jak Romek i prawienia kazań, znalazłeś rozwiązanie dla mnie, o które mi chodziło. Swoją drogą Romek, nim takie uwagi napisze powinien poprawić swoją stronę- masakrycznie działa to menu i próba wejścia po jego rozwinięciu na któryś z link wymaga "refleksu", by szybko myszką ruszyć i nie trafić w pustą przestrzeń między pozycjami po rozwinięciu, by się nie schowała całość ;-P

0

To, że wiele sajtów tak robi to nie znaczy, że jest dobrze. Przypomina mi się takie hasło: "jedzmy g****, sto milionów much nie może się mylić".

Poza tym prosty przykład, masz układ jak w forum

nazwa_watku | data | napisal | odpowiedzi |

itd. I niby na pierwszy rzut oka - powinna być tabela. A teraz nachodzi Cię ochota zmienić układ na np

nazwa watku |

napisal | data |odpowiedzi |

I w przypadku tabelek zmieniasz całą strukturę tabeli, ja który to zrobiłem na divach - zmienię dwie linie w css-ach. A biorąc pod uwagę fakt, że struktura danych się nie zmieniła, a tylko ich prezentacja, to logiczne, żeby zmienić cssy(odpowiedzialne za prezentacje danych) a nie dokument (odpowiedzialny za strukturę prezentowanych danych)

Inny przykład. Jak chcę dodać box, który po najechaniu na wątek się pokaże i załaduje ajaxem ostatni post. Najłatwiej jest zrobić to dodając diva z position absolute w danym wierszu. Jednak jak zrobisz to w tabeli - będzie to niezgodne ze specyfikacją.

dane tabelaryczne, to przecież
nazwa : wartośc
nazwa: wartość

To nie prawda, ze fora siłą rzeczy powinny siedzieć na tabelkach. Siedzą na tabelkach z jednego z poniższyc hpowodów:

  • powstały w czasach, gdy tabelki były szeroko stosowane w budowaniu layoutów
  • twórcy rozdzielają silnik forum od jego wyglądu (template'y) i udoskonalając forum olewają defaultowy template, bo to nie ich działka (skupiają się na bezpiecznym enginie)

Tak czy siak zrobisz sobie przysługę nie wyrabiając nawyku tworzenia layoutów na tabelkach. W swoim zespole wszystkich tego oduczam ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1