Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][HTML] Automatyczne zwężanie diva
Forum PHP.pl > Forum > Przedszkole
gregiolo
Witam,

Chciałbym uzyskać efekt jak na obrazku. Ważne jest jednak, aby rozwiązanie było uniwersalne dla wszystkich rozdzielczości.

Kod wstępnie wygląda tak. Niestety nie działa

  1. .top {
  2. display: block;
  3. width: 100%;
  4. height: auto;
  5. background: url(graph/bg_top.jpg) repeat-x bottom left;
  6. }
  7.  
  8. .content{
  9. display: block;
  10. width: 100%;
  11. height: 600px;
  12. background: url(graph/bg.jpg) #000e28 repeat-x bottom left;
  13. }


Zależy mi na tym aby warstwa content była widoczna zawsze w stałym rozmiarze i przylegała do dołu strony (!).. Warstwa .top powinna zmniejszać się lub zwiększać w zależności od wysokości ekranu. Zatem puste miejsce pomiędzy złączeniem obu warstw powinien być wypełniany przez warstwę .top. Niestety obecnie tak się nie dzieje. sad.gif



Proszę o pomoc zatem.
muniekw
A jak wygląda html?

Ja zrobiłem tak:
  1. <body>
  2. <div class="top">Tekst<br>tekst<br>tekst</div>
  3. <div class="content">a<br><br>a<br><br>a</div>
  4. </body>


a CSS tak:
  1. .top {
  2. display: block;
  3. width: 100%;
  4. height: auto;
  5. background-color: rgb(153,51,153);
  6. }
  7.  
  8. .content{
  9. display: block;
  10. width: 100%;
  11. height: 600px;
  12. background-color: rgb(51,204,255);
  13. }



Nie wiem czy dokładnie o to Ci chodzi, ale mi działa smile.gif
gregiolo
HTML wygląda dokładnie tak jak u Ciebie domyślnie.
Owszem działa ale tło warstwy (content) nie jest przyrównane do dołu strony. U mnie jest dziura między dołem ekranu a warstwa (content) kończy się gdzieś po srodku strony.

U Ciebie nie widać tego bo użyłeś tła jednolitego. smile.gif Ja mam na dole warstwy (content) obrazek panoramiczny.
Ku górze leci gradient. Warstwa (top) ma kolor gradientu, przez co zaoszczędzam miejsce zamiast pakować jpg. smile.gif Dlatego ważne jest, aby strona warstwą (content) przylegała do dołu, a warstwa (top) wypełniała różnicę.


ats2008
Tak na szybko:

height auto w div.top nic Ci nie da, bo auto dostosuje do zawartości diva, a nie do wysokości ekranu.

Prawdę mówiąc widzę 3 ścieżki tego problemu:

1. Nadać div.top sztywną wysokość, bo jeśli div.content ma 600px, to znajdź największą rozdzielczość przeglądarki i ustal ja tak, żeby obejmowała cały ekran, albo nawet więcej (wtedy pojawi się suwak) i nie będzie wielkiej dziury. Przyznaję - tanie rozwiązanie.

2. Jeśli nic z tego Ci nie podpasuje, to musisz pokombinować z wymuszeniem wysokości div.top, np. dać mu ok. 50% wysokości (ale wtedy musisz nadać body atrybut 100%...).

3. Może pomoże Ci przesuwane tło - poszukaj w necie.

Pozdrawiam.

gregiolo
Postąpiłem zgodnie z punktem drugim i udało się doskonale. smile.gif Dzieki wielkie za odpowiedzi! smile.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.