Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Div Scroll, dynamiczna szerokość
ksanderon
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 29.06.2011

Ostrzeżenie: (0%)
-----


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.

Ten post edytował ksanderon 29.06.2011, 22:03:37
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
ksanderon
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 29.06.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Sephirus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 01:09