Błąd z div overflow?

w dziale Strony WWW w Operze
zetiks napisał(a):

Otórz stworzyłem prosty szablon strony: http://www.gate.piasta.pl/inne/projekt/index.php?strona=galeria. Problem polega na tym, że nie pojawia się scrollbar, gdzie na wcześniejszych wersjach Opery (z tego co mi mówiono), IE, i Fx wszystko jest jak należy. Dodatkowo zaznaczę, że przy tekscie jest wszystko ok. Na forach pytałem czy to może ja coś źle robię, ale powiedziani mi, że nikt nie może się dopatrzyc błędu. Rozwiejcie więc moje wątpliwości - wina moja czy Opery?

skolman napisał(a):

hm, ja tam nie wiem ale na win xp w operze 8.51, ie6 i ff1.5 pionowy suwaczek sie pojawia.
nie ma go tylko w merlinie co nie powinno martwic na razie.
i moja sugestia: nie uzywaj merlina do testowania stron.

Zajec napisał(a):

Twoja wina.

W arkuszu stylów nadałeś float:left dla div.obrazek. Opera 9 jest bardziej czuła na taki błąd (inaczej - bardziej zgodna ze stnadardami) i nie pokazuje paska.

Czemu?
W Twoim przypadku na wysokość #tresc wpływają div'y z obrazkami. Tylko one. Należy jednak pamiętać, że elementy z nadanym float nie mają prawa wpływać na wysokość rodzica.

Efekt?
Div'y z obrazkami nie rozciągają div'a #tresc, więc nie ma wysokości na tyle "dużej", by posiadać scrolle.

Rozwiązania?
1) Zamiast float dla div.obrazek spróbuj dać mu display:inline-block (Nie wiem czy działa w Gecko? Trident/Prest/KHTML/Webcore sobie radzą.)
2) Przed zamknięciem div'a #tresc dodać jeszcze np. <br style="clear: left;" />
3) Jw. ale za pomocą pseudoelementu: #tresc:after { display: block; clear: left; content: ""; }

zetiks napisał(a):

Faktycznie, dziękuję serdecznie. Mój błąd polegał na tym, że próbowałem ustawić :after dla <div class="obrazek" />. To chyba można poprosić moderatorów o przesunięcie wątku do odpowiedniego tematu...