Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [css] problem z wyświetlaniem obrazka w tle
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
GhOsT9
Mam problem z wyświetlaniem obrazka jako tło DIV'a. Ma to być niepowtarzający się motyw, leciutki gradient który schodzi w dół do jednolitego koloru. Tło wyświetla mi się jedynie wtedy, kiedy w środku DIV'a jest jakaś zawartość.

Jeśli jest jedna linia tekstu, tło wyświetla się tylko pod nią. Problem uwidacznia się w momencie, kiedy na stronie mam dwie kolumny:
- po lewej menu
- po prawej treść

Jeśli wrzucę background-image oddzielnie dla tła, oddzielnie dla treści i treść jest "wyższa" od menu, to treść wygląda OK a menu ma tło tylko do wysokości batonów.

Co powinienem zmienić żeby obrazek w tle wyświetlał się niezależnie od tego czy w bieżącym lub podrzędnym DIV'ie jest jakaś zawartość? Próbowałem wstawiać tło dla DIV'a middle, ale wtedy w ogóle się nie wyświetla poniewać w podrzędne DIV'y (menu i content) są puste a dopiero w hierarchicznie niższych (menu_inside i content_inside) jest osadzana treść lub grafika.

Będę wdzięczny za jakieś wskazówki.


Pomijając kontenery i inne elementy, wrzucam samo sedno sprawy, wycinek html'a oraz styli.
middle to środkowa część stronki, między headerem a dolnym paskiem.


  1. <div id="middle">
  2. <div id="menu">
  3. <div id="menu_inside">
  4.  
  5. tu będą batony
  6.  
  7. </div>
  8. </div>
  9.  
  10. <div id="content">
  11. <div id="content_inside">
  12.  
  13. tu będzie tekst
  14.  
  15. </div>
  16. </div>
  17. </div>



  1. #middle
  2. {
  3. width:880px;
  4. position:relative;top:0px;left:0px;
  5. background: f2ebca;
  6. clear: both;
  7. }
  8.  
  9. #menu
  10. {
  11. width:260px;
  12. position:relative;top:0px;left:0px;
  13. background-image:url('gfx/bg_menu.gif');
  14. background-repeat:no-repeat;
  15. float:left;
  16. }
  17.  
  18. #menu_inside
  19. {
  20. width:240px;
  21. position:relative;top:0px;left:10px;
  22. font-family:Verdana, Helvetica, Arial, sans-serif;
  23. }
  24.  
  25. #content
  26. {
  27. width:620px;
  28. position:relative;top:0px;left:0px;
  29. background-image:url('gfx/bg_content.gif');
  30. background-repeat:no-repeat;
  31. text-align:left;
  32. float:right;
  33. }
  34.  
  35. #content_inside
  36. {
  37. width:600px;
  38. position:relative;top:0px;left:0px;
  39. text-align:left;
  40. float:left;
  41. }
cbagov
Jesli widze ten sam problem co ty:

divy - 'menu' - 'content' sa niezalezne tak jak i ich wysokosci
proponuje umiescic je w trzecim divie
i dla tego trzeciego div nadac tlo ktore ma sie rozciagac w pionie
bedzie wtedy tak wysokie jak jeden albo drugi div
GhOsT9
cbagov:

dzięki za sugestię. tło jednak nie ma być rozciągane a jedynie wyświetlone raz od góry DIV'a. to leciutki gradient, który schodzi do jednolitego koloru tła.

próbowałem podpinać tło do zbiorczego DIV'a ale nie śmiga, bo DIV'y podrzędne zawierają jeszcze po jednym w sobie a dopiero tam treść/obrazki.
cbagov
Mialem na mysli, ze rozciagnie sie DIV a skoro ma tlo to i ono bedzie bardziej odsloniete.
Slij na prv.
Shili
Jeśli problem nadal nie jest rozwiązany... winksmiley.jpg

Wstaw do styli elementu middle overflow: hidden;

Spowoduje to, że element middle będzie miał taką wysokość, jak wyższy z elementów menu i content. Następnie możesz ustawić mu bez problemów tło.

Jeśli natomiast dalej będzie problem z tym, że element jest zbyt krótki i tło nie wyświetla się w całości możesz nadać mu styl min-height: XXpx; Nie działa on co prawda w IE (na pewno 6), jednak od biedy można się posiłkować expressions.

Cytat
Próbowałem wstawiać tło dla DIV'a middle, ale wtedy w ogóle się nie wyświetla poniewać w podrzędne DIV'y (menu i content) są puste a dopiero w hierarchicznie niższych (menu_inside i content_inside) jest osadzana treść lub grafika.
To nie ma żadnegno znaczenie. Element menu nie ma wysokości dlatego, że jego podrzędne elementy się opływają i tym samym mają zmienną wysokość (element nadrzędny nie może ustawić sobie wysokości, bo "nie ma pojęcia" jaką ustawić) - radą na to jest właśnie ustawienie mu stylu overflow.
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.