Napisalem strone, ktora faktycznie opiera sie na obrazkach, a tekst jest tylko malym dodatkiem, ktory jak wstawiam w DIVa i pozycjonuje go, to dziala dobrze w sensie wizualnej calosci.
Ale teraz jest zgrzyt, bo trzeba dodac stronce dzial "newsy", gdzie bedzie publikowana tresc jako tekst. I ten zgrzyt polega na tym, ze jak sobie do tej mojej struktury wrzucam dlugie teksty, to juz nie wyswietla sie toto dobrze, ze wzgledu na ucinanie tegoz tekstu.
Moja strona ma taka mniej wiecej strukture (jest dosyc mocno rozbudowana, wiec nie bedzie calosci kodu). Podaje warstwy:
GLOWNY
- LEWY
-- costam1
-- costam2
- PRAWY
-- S_UPPER
--- costam3
--- costam4
-- DIV_no_name
--- news
-- S_MAINFOOT
Widac wiec, ze warstwa GLOWNY ma 2 wartwy w srodku: LEWY i PRAWY. Lewy wyswietla sie OK.
Warstwa PRAWY zawiera S_UPPER (ktora tez jest OK), potem nastepuje wartwa DIV_NO_NAME, w ktorej z kolei miesci sie wartwa do wyswietlania newsow; na koncu warstwy PRAWY zagniezdzona jest wartwa S_MAINFOOT stanowiaca stopke (taki se rysunek konczacy wizualnie strone).
I teraz tak - problem polega na tym, ze wartwa DIV_no_name nie chce za Chiny Ludowe przystosowac swojej dlugosci do rozmiaru tekstu, jaki jest w podrzednej do niej warstwie NEWS. Czyli krotko mowiac - warstwa NEWS jest ucieta przez warstwe DIV_NO_NAME, w zwiazku z czym tekst newsow jest uciety - i to stanowi moj problem.
Jak go rozwiazac ?
Podaje kod CSS i PHP dla w/w warstw.
#glowny {position: relative; margin-left: auto; margin-right: auto; top: 0px; width: 1028px; border: 0px; overflow: hidden; display: table;} #lewy {float: left; width: 175px; min-height: 366px; display: table-cell; vertical-align: top;} #prawy {position: relative; top: -366px; width: 853px; display: table-cell; vertical-align: top; min-height: 366px;} #s_upper {position: relative; display: block; margin: 0px; padding: 0px; left: 0px; top: 0px; width: 853px; height: 129px;} $file='/gui/bkg_main.png'; position: relative; display: block; left: 0px; top: 0px; width: 853px; clear: both; background-image: url('.$file.');">'); #news {position: absolute; left: 23px; top: 0px; width: 782px; padding-left: 2px; padding-right: 2px;} #s_mainfoot {z-index: 27; display: block; position: relative; left: 0px; top: 0px; width: 853px; height: 13px; background-image: url('/gui/bkg_main_foot.png');}
Tekst w warstwie NEWS jest wpisywany z bazy przez PHP. Probowalem czystego tekstu, jak i tabeli - bez znaczenia. Oryginalnie wartwa DIV_NO_NAME (to ta definiowana przez PHP, bez nazwy) posiada z innych wzgledow wartosc MIN_HEIGHT, ktora dziala tak, ze w przypadku strony z newsami pozwala wyswietlac tylko czesc tekstu, reszta nadal ucieta. Jak pozbawie warstwe tego parametru (niby ma byc wowczas AUTO), to wyglada, jakby warstwa miala wysokosc 0.
Mam w Firefoksie Web Developera, ktory podaje mi wlasciwosci obiektow i np. widze, ze DIV NEWS to 764px, podczas gdy DIV_NO_NAME ma... 710px (co jest tozsame z min-height: 710px, jak se taki ustale, a wiec czemu sie nie wydluza zgodnie z zagniezdzonym w nim DIVem NEWS ?). Inne wysokosci podawane przez to rozszerzenie:
GLOWNY: 966
PRAWY: 766
S_UPPER: 129
DIV_NO_NAME: 710
NEWS: 764
Dziekuje za sugestie
OK, znalazlem juz odpowiedz.
Napisze, bo moze komus sie przyda: warstwa NEWS miala pozycjonowanie ABSOLUTE, co uniemozliwialo rozciaganie elementu nadrzednego. Wystarczylo zmienic na RELATIVE i voila - wszystko sie rozciaga, jak nalezy.