Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Automatyczne dopasowanie ramki div-a do zawartości - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: Automatyczne dopasowanie ramki div-a do zawartości (/thread-automatyczne-dopasowanie-ramki-div-a-do-zawarto%C5%9Bci)



Automatyczne dopasowanie ramki div-a do zawartości - MireX - 10-09-2009

Cześć wszystkim!

Mam mały problem - w uproszczeniu: jeśli zawartość diva jest szersza od okna przeglądarki, to prawa część ramki tego diva przebiega przez zawartość. Może dla zobrazowania mały skrypcik JS:
Kod PHP:
javascriptdocument.write('<html><body><div id="mydiv" style="border: blue 3px dashed"><table border="1"><tr>'); for(i=0;i<200;++i){document.write('<td>'+i+'</td>');} document.write('</tr></table></div></body></html>'); document.close(); 
(do wklejenia i uruchomienia w pasku adresu przeglądarki)
Skrypt tworzy diva (z obramowaniem), a w nim tabelkę - która w większości przypadków - będzie szersza od okna przeglądarki. Niestety "border" cały czas jest taki jak szerokość okna. I tu moje pytanie:
da się zrobić tak, żeby border się dostosowywał do szerszej zawartości? Problem dotyczy FF i Opery, a IE nie - co utwierdza mnie w przekonaniu, że robię coś nie tak :-)

Pozdr.,
M.


RE: Automatyczne dopasowanie ramki div-a do zawartości - mar22 - 12-09-2009

mozesz zrobic np takSmile
Kod:
javascript: document.write('<html><body><div id="mydiv" style="border: blue 3px dashed;min-width:5120;"><table border="1"><tr>'); for(i=0;i<200;++i){document.write('<td>'+i+'</td>');} document.write('</tr></table></div></body></html>'); document.close();



RE: Automatyczne dopasowanie ramki div-a do zawartości - MireX - 12-09-2009

Dzięki za sugestię - tylko te przykładowe 200 komórek nie jest niestety wartością stałą - a ja chciałbym, żeby ramka się automatycznie dopasowywała właśnie w zależności od szerokości zawartości. Na razie to co wymyśliłem jest podobne do twojego pomysłu - tylko zamiast min-width korzystam z width (to chyba nie robi różnicy), a samą wartość generuję na podstawie tego, ile kolumn ma być - czyli w uproszczeniu:
Kod PHP:
javascriptk=200document.write('<html><body><div id="mydiv" style="border: blue 3px dashed; width: '+(Math.round(k*25.62))+';"><table border="1"><tr>'); for(i=0;i<k;++i){document.write('<td>'+i+'</td>');} document.write('</tr></table></div></body></html>'); document.close(); 
- tylko jeszcze trzeba osobno liczyć szerokość komórek 1- / 2- / 3- cyfrowych (lub dopełniać &nbsp-ami) i zastosować czcionkę o stałej szerokości.
Aczkolwiek takie rozwiązanie wydaje mi się trochę prowizoryczne i nie jestem przekonany, że taki wpisany na stałe współczynnik się zawsze sprawdzi.

Pozdr.,
M.

PS: A najbardziej mnie wnerwia, że w IE wygląda dobrze bez takich zabaw Tongue