Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Div Scroll, dynamiczna szeroko¶ć
Forum PHP.pl > Forum > Po stronie przegl±darki > CSS
ksanderon
Mam stronę, na której chcę umieszczać kody Ľródłowe Pythona- Do kolorowania składni używam google prettify, wszystko jest dobrze, tyle że kontener, w którym mam tre¶ć strony automatycznie dostosowuje się do szeroko¶ci okna(chyba, że szeroko¶ć mniejsza niż 800 wtedy wy¶wietla pasek przewijania u dołu strony)- tak ma być. Ponieważ kod Pythona bywa "szeroki" zd±ża się, że nawet przy standardowych rozdzielczo¶ciach strona trochę się rozjeżdża przez niego(kod)- dlatego postanowiłem kontener dla kodu (klasę pre) umieszczać wewn±trz przewijanego poziomo diva. I tu pojawia się problem- wszystko ładnie działa, gdy podam jego szeroko¶ć w px, je¶li jednak zrobię to przy pomocy procentów(co by było bardzo wygodne w tym wypadku) lub podam left i right jako 0px to efekt jest taki, że scroll owszem jest, ale nijak nie działa, ponieważ pre rozpycha diva- wiem, że dało by radę co¶ z tym zrobić poprzez JavaScript, ale wolę to zostawić na koniec. Wie kto¶ jak to zrobić przez css?

Przykładow± stronę można zobaczyć tutaj:http://ksanderon.tk/PythonDynamicModules.html

przykład z divem jest tylko przy najszerszym kodzie.
Sephirus
Hmm jeżeli Cię dobrze zrozumiałem (dodatkowo po sprawdzeniu przykładu) chodzi Ci o to by ten DIV, który zawiera kontener mógł mieć ustawione WIDTH na 100% tak żeby przy większej rozdzielczo¶ci DIV się odpowiednio powiększył i PRE poszło za nim a przy mniejszej by PRE mie¶ciło się w DIV nie rozci±gaj±c go tak? smile.gif

Po pierwsze: nie mam pojęcia co Ci daje left i right ustawione na 0?? i to naraz ;P

Po drugie: duuuży minus za pozycjonowanie elementów strony oparte na tabelce... float:left/right i do dzieła...

A co do tematu... Popełniłe¶ bł±d używaj±c wła¶nie tabeli bo za dużo tam masz width:100% i się cało¶ć rozjeeeżdża. Moja propozycja na przykładzie:

  1. <div style="min-width:1004px">
  2. <!-- TU DAJEMY PRAWY BLOK (TAK NAJPIERW PRAWY!) -->
  3. <div style="float:right; width:198px; border:1px solid black; ">
  4. Jaki¶ przykładowy tekst<br/>
  5. Jaki¶ przykładowy tekst<br/>
  6. Jaki¶ przykładowy tekst<br/>
  7. Jaki¶ przykładowy tekst<br/>
  8. Jaki¶ przykładowy tekst<br/>
  9. </div>
  10. <!-- TU DAJEMY LEWY BLOK (Z TRE¦CIˇ) -->
  11. <div style="min-width:780px; border:1px solid black; padding:10px; margin-right:202px;">
  12. Jaki¶ przykładowy tekst<br/>
  13. Jaki¶ przykładowy tekst<br/>
  14. Jaki¶ przykładowy tekst<br/>
  15. Jaki¶ przykładowy tekst<br/>
  16. Jaki¶ przykładowy tekst<br/>
  17. <pre style="overflow:auto; width:100%; background-color:wheat; border:1px dotted red;">
  18. Jaki¶ przykładowy kod
  19. Jaki¶ przykładowy kod
  20. Jaki¶ przykładowy kod Jaki¶ przykładowy kod Jaki¶ przykładowy kod Jaki¶ przykładowy kod Jaki¶ przykładowy kod Jaki¶ przykładowy kod Jaki¶ przykładowy kod
  21. Jaki¶ przykładowy kod
  22. Jaki¶ przykładowy kod
  23. Jaki¶ przykładowy kod
  24. </pre>
  25. Jaki¶ przykładowy tekst<br/>
  26. Jaki¶ przykładowy tekst<br/>
  27. Jaki¶ przykładowy tekst<br/>
  28. Jaki¶ przykładowy tekst<br/>
  29. Jaki¶ przykładowy tekst<br/>
  30. </div>
  31. </div>
  32. </body>
  33. </html>


i teraz o co chodzi... Dajesz dwa bloki tak jak masz lewy dajesz zwykły z min-width na tyle ile potrzebujesz (ja dałem 780px + 2xpadding po 10 = 800px). Samej szeroko¶ci mu nie deklaruj - daj tylko margin-right na taki by zmie¶cił się tam blok prawy. Blok prawy musi mieć float na right i mieć ustalon± konkretn± szeroko¶ć i tyle. Oba bloki uj±łem specjalnie w diva z ustalonym min-width jako suma paddingów, marginów i widthów bloków aby przy zmniejszaniu prawy blok nie "najechał" na lewy - jak skasujesz tego dodatkowego DIVa to zobaczysz wink.gif I na koniec PRE: bez żadnych dodatkowych kontenerów/wrapperów wink.gif

HTH!

P.S. poczytaj o szablonach pływaj±cych nie opartych na tabelkach (float) wink.gif
ksanderon
Dzięki- mi też te tabelki wcale się nie podobały- ale jako¶ nie wychodziło mi z floatami(wiedziałem, że dzięki nim można otrzymać podobny efekt ale brakło mi pomysłów/cierpliwo¶ci oraz przykładów jak to zrobić)- teraz dobrze przeanalizuję sobie to(aby się douczyć) i szybko podmienię w szablonie generatora stron(gdy sprawdzę, że nie ma to jaki¶ niemiłych następstw).


no... left 0 i right 0 tak na logikę powinny powodować to samo co np. left:0 i width: 100%(jako matematyczna różnica zbiorów- ale wydumałem nie?), ale ja w CSS jestem raczej noobek (wchodzę w to gdy muszę), więc od razu można to wstawić do działu ¶mieszne/żałosne czarodziej.gif

Jeszcze raz dzięki.
Sephirus
Hehe wink.gif ciekawe podej¶cie - bardziej ciekawe czy to działa ;P muszę sprawdzić to z tym left+right bo logiczne to to faktycznie jest wink.gif Daj znać jak się udało wink.gif

A tak w ogóle to też dzięki bo robię co¶ podobnego i szukałem czego¶ prostego do kolorowania składni - to mi się to googlowe przyda co Ty używasz wink.gif
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.