Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Height 100% i "collapsed" body
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
Mike0
Witam, próbuję stworzyć banalny (mogłoby się wydawać) layout, ale jednak jak się okazuje nie mogę sobie z nim poradzić.

Ogólnie chodzi mi o to, że potrzebuję nadać tło dla znacznika HTML i BODY, a jednocześnie przy tym dla wielu DIVów (jeden pod drugim) ustawić wartość height:100%;
Ogólnie wiem jak to zrobić, czyli:
  1. html, body{ height:100%; }
  2. div.myClass{ min-height:100% }

Z tym, że nadanie dla body wysokości 100% powoduje oczywisty błąd - przy scrollowaniu dokładnie widać gdzie kończy się znacznik body (po owych 100% wysokości ekranu; o dziwo dla HTML nie jest to problemem).

Oczywiście min-height zamiast height dla body mnie nie ratuje, bo wtedy wewnętrzne divy nie są wysokie na wysokość okna przeglądarki....

Tak więc, albo znajdę inny sposób na zmianę wysokości divów (a nie chcę używać do tego JS), albo zaczepię nową warstwę jako fixed i ona będzie 2 tłem zamiast body, ale to namiesza mi w htmlu, więc wolałbym sprytny i ładny pomysł....


Baaardzo proszę o pomoc! nerdsmiley.png
Hyth
Nie jestem pewien, ale czy próbowałes dodać do "body" i "html" height i min-height jednocześnie na 100% ?
Mike0
Witam, niestety nie działa :<
I w sumie się nie dziwię, bo najpierw mówimy "miej wysokość dokładnie 100%" i jednocześnie "ale nie mniej niż 100%", więc wychodzi na jedno...
Hyth
Ok, mój błąd.

Spróbuj:

html{
height: 100%;
}
body {
min-height: 100%;
}
Mike0
Nadal nic, a właściwie trick z wysokością dla diva 100% przestaje działać.
com
http://jsfiddle.net/q7ZkK/ Nie bardzo rozumiem Co tu Ci nie działa?
Hyth
Dokładnie tak jak poprzednik napisał. Jest to zasadzie Twoja pierwsza konfiguracja i u mnie również działa bezproblemowo. Kolejne divy mają 100% wysokości ekranu i znajdują się pod sobą. Chyba po prostu nie rozumiemy o co Ci dokładnie chodzi.

Mi wyszło tak:

http://jsfiddle.net/Hyth/54rvR/

Edit:

Ok chyba, że chcesz jeszcze zresetować ramki z body to dodajesz do body:

body {
padding: 0;
margin: 0;
}
Mike0
http://jsfiddle.net/54rvR/4/

Chodzi o to by body obejmowało wszystkie N divów, teraz jak widać na demo obejmuje tylko 1. Reszta ma być tak jak jest.
com
Nie zrobisz tego w ten sposób, ponieważ wysokość body ustalana jest przy lądowaniu dom czyli wysokość jednego ekranu, jeśli te divy maja być puste to możesz zrobić to tak http://jsfiddle.net/54rvR/6/

A w zasadzie to zmień koncepcje i to co próbujesz uzyskać w body opakuj w div i będzie wszystko grało smile.gif
Hyth
Ewentualnie zabawy na html, i klasie divów

http://jsfiddle.net/Hyth/9ttxs/

Edit: ale to bezsensu, nie o to raczej chodziło, bo to można było zrobić już dawno wink.gif
Mike0
sciana.gif
To może opowiem od początku, może ktoś mi podrzuci pomysł. Chcę zrobić stronę "responsive design" z infinite scrolling. Do tego właśnie potrzebuję by DIV.page był wysoki na co najmniej 100% - by naraz widać było tylko 1 "podstronę". Menu ma być FIXED na lewo by było zawsze pod ręką. Do tego ustawione tła dla HTML (fixed) i BODY (kolor).
  1. <!-- na potrzeby grida, szerokość max 1680px -->
  2. <div class="page-wrap">
  3. <!-- na potrzeby grida, szerokość max 1660px -->
  4. <div class="content-wrap">
  5.  
  6. <!-- Menu: FIXED na lewo -->
  7. <ul class="side-menu">
  8. <li class="current"><a href="#"class="icon-home">BEGINNING</a></li>
  9. <li class="current"><a href="#"class="icon-home">BEGINNING</a></li>
  10. <li class="current"><a href="#"class="icon-home">BEGINNING</a></li>
  11. <li class="current"><a href="#"class="icon-home">BEGINNING</a></li>
  12. </ul>
  13.  
  14. <!-- Miejsce na podstrony -->
  15. <!-- margin-left by menu nie przesłaniało treści -->
  16. <div class="wrap">
  17.  
  18. <div class="page page-beginning">
  19.  
  20. Tekst 1
  21.  
  22. </div>
  23.  
  24. <div class="page page-2">
  25.  
  26. Tekst 2
  27.  
  28. </div>
  29.  
  30. <div class="page page-3">
  31.  
  32. Tekst 3
  33.  
  34. </div>
  35.  
  36. </div>
  37.  
  38. </div>
  39.  
  40. </div>
  41. </body>


Czy ktoś ma jakieś sugestie jak ładnie rozwiązać taką sytuację?
com
Takie pytanie jaki ma to związek z RWD ? ponadto jak już mowa o RWD to tam masz do ustalania tych parametrów Media Queries http://www.w3.org/TR/css3-mediaqueries/ A wgl to jaki to ma związek z tym o co pytałeś wcześniej bo wdg mnie zerowy... Bo teraz mówisz że chcesz żeby div page miał 100% a tam była mowa o body, wiec zupełnie dwie różne kwestie...
Mike0
Wiem, ze do tego są media queries i nie bardzo sie to wiąże z tym tematem na tym etapie. Nigdzie nie napisałem, że moim założeniem jest że body ma mieć 100%.
Body ma obejmować całą stronę. A wewnątrz jego mają znajdować się div'y z min-height: 100%.
com
body obejmuje całą stronę, ale nie da się z poziomu html ustawić większego niż 100% dlatego to co wykracza poza ekran nie jest już kolorowane, jeśli bardzo być musi to musisz to wrzucić w znacznik html lub zmieniać dynamicznie z poziomu js lub JQ wink.gif może pomoże http://www.jqueryscript.net/demo/jQuery-Si...n-scrollomatic/ 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.