Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [css]Problem z dopasowaniem tła
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
Jarod
Kod CSS:
Kod
#kontener {
      margin: 0 11%;
      padding: 0;
      background-image: url(../layout/tlo.gif);
      background-repeat: repeat-x;
      background-attachment: fixed;
}

#belka {  
    margin: 0;
      background-image: url(../layout/belka.gif);  
      width: 100%;
      height: 131px;
}


Kod HTML:

  1. <body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  2.  
  3. <div id="kontener">
  4.  
  5. <p>test, test </br></p>
  6. <p>test, test </br></p>
  7. </div>
  8.  
  9. </body>


Rozumiem, że wtedy długość strony będzie się dopasowywała. Ale jak tak zrobiłem to na samej górze strony jest trochę PUSTEGO miejsca.

Próbowałem się tego pozbyć poprzez ustawienie marginesów ujemnych ale nie we wszystkich przeglądarkach to działa a pozatym czytałem, żeby lepiej nie stosować ujemnych marginesów.

Pozatym chcę żeby tło nie przesuwało się razem z zawartością strony bo mam tło z gradientu i będzie widać PRZEJŚCIA.. Przejścia widać tylko pod IE i chyba operą a w firefoxie jest tak jak chcę. Już nie mam siły..

Jak się tego pustego obszaru pozbyć?
code46
Nie rób pod IE tongue.gif
ens0re
@code46: Jak nie masz nic do powiedzenia to nie pisz..

@J4r0d: Spróbój coś takiego, chociaż nie jestem pewny:
  1. * {
  2. margin: 0;
  3. padding: 0;
  4. border: 0;
  5. }
Jarod
Cytat(ens0re @ 2006-02-27 12:48:19)
@code46: Jak nie masz nic do powiedzenia to nie pisz..

@J4r0d: Spróbój coś takiego, chociaż nie jestem pewny:
  1. * {
  2. margin: 0;
  3. padding: 0;
  4. border: 0;
  5. }

Próbowałem. Nie pomaga. Ustawiłem nawet:

Kod
margin: -8px 0;


pod Operą i FF jest ok. IE jedynie przycina tekst, tło nie przesuwa się.. :/
sztosz
Może sprobuj dla kontenera ustawić osobno kazdy margin:

margin-top: 0;
margin-bottom: ....itd.

Nie daję głowy, tak gdybam :|
Jarod
Cytat(sztosz @ 2006-02-27 14:45:09)
Może sprobuj dla kontenera ustawić osobno kazdy margin:

margin-top: 0;
margin-bottom: ....itd.

Nie daję głowy, tak gdybam :|

Nie pomaga :/
comzit
Co do pustego miejsca: Dla BODY ustaw margin i padding na 0;

Co do tego gradientu to chcesz żeby sie #kontener nie przesuwał? Bo nie kumam do konca o co Ci biega.
ens0re
Cytat(comzit @ 2006-02-27 15:22:43)
Co do pustego miejsca: Dla BODY ustaw margin i padding na 0;


Wydaje mi się, że już to napisałem w swoim powyżej poście. Selektor uniwersalny(*) ustawia wartość domyślną dla wszystkich selektorów.
comzit
Jak dla mnie to wszystko działa. Oczywiście można ustawić wszystko (*) ale to trochę jak GLOBAL w php. Raczej należy tego unikać i dlatego napisałem o BODY.
revyag
@J4r0d - daj linka do strony, po screenach też nie można wszystkiego powiedzieć
Jarod
Cytat(revyag @ 2006-02-27 15:45:53)
@J4r0d - daj linka do strony, po screenach też nie można wszystkiego powiedzieć

Nie mam jeszcze miejsca na serwerze, dlatego podaje kod.

CSS:
Kod
/* Styl główny */
/* Układ strony */

#kontener {
      margin: -8px 11%;
      padding: 0;
      background-image: url(../layout/tlo.gif);
      height: 100%;
      background-repeat: repeat-x, repeat-y;
      background-attachment: fixed;
}

#belka {  
    margin: 0;
    padding: 0;
      background-image: url(../layout/belka.gif);  
      width: 100%;
      height: 131px;
}

/* Reszta */

p {
    margin: 0;
    padding: 0;
}



HTML:

  1.  
  2. <div id="kontener">
  3.  
  4. <p>test, test </br></p>
  5. <p>test, test </br></p>
  6. <p>test, test </br></p>
  7. <p>test, test </br></p>
  8. <p>test, test </br></p>
  9. <p>test, test </br></p>
  10. <p>test, test </br></p>
  11. <p>test, test </br></p>
  12. <div id="belka">
  13. </div>
  14. <p>test, test </br></p>
  15. <p>test, test </br></p>
  16. <p>test, test </br></p>
  17. <p>test, test </br></p>
  18. <p>test, test </br></p>
  19. <p>test, test </br></p>
  20. <p>test, test </br></p>
  21. <p>test, test </br></p>
  22. <p>test, test </br></p>
  23. <p>test, test </br></p>
  24. <p>test, test </br></p>
  25. <p>test, test </br></p>
  26. <p>test, test </br></p>
  27. <p>test, test </br></p>
  28. <p>test, test </br></p>
  29. <p>test, test </br></p>
  30. <p>test, test </br></p>
  31. <p>test, test </br></p>
  32. <p>test, test </br></p>
  33. <p>test, test </br></p>
  34. <p>test, test </br></p>
  35. <p>test, test </br></p>
  36. <p>test, test </br></p>
  37. <p>test, test </br></p>
  38. <p>test, test </br></p>
  39. <p>test, test </br></p>
  40. <p>test, test </br></p>
  41. <p>test, test </br></p>
  42. <p>test, test </br></p>
  43. <p>test, test </br></p>
  44. <p>test, test </br></p>
  45. <p>test, test </br></p>
  46. <p>test, test </br></p>
  47. <p>test, test </br></p>
  48. <p>test, test </br></p>
  49. <p>test, test </br></p>
  50. <p>test, test </br></p>
  51. <p>test, test </br></p>
  52. </div>
  53.  
  54. </body>
comzit
Kurcze, powiedz co chcesz osiągnąć tym #kontenerem?

Jak ma cały stać w miejscu w IE to gdzieś na forum widziałem link do tego rozwiązania dla IE. Ale jak tylko tło to raczej wykorzystaj tło dla body, tutaj możesz unieruchomić tło dla IE.

I nie wiem co z tym ujemnym marginesem kombinujesz. Wystarczy albo dać na zero margin i pading w {*} albo body.
Zajec
Cytat(J4r0d @ 2006-02-27 14:41:14)
Cytat(ens0re @ 2006-02-27 12:48:19)
@J4r0d: Spróbój coś takiego, chociaż nie jestem pewny:
  1. * {
  2. margin: 0;
  3. padding: 0;
  4. border: 0;
  5. }

Próbowałem. Nie pomaga.

Na pewno? Wygląda na niewyzerowane paddingi/marginesy elementu p.
gekon
Kod
/*jednak to, sprawdzalem :)*/
body{
margin: 0;
padding: 0;
}
#kontener {
  margin: 0px 11%; /* tu zamiast -8, 0*/
  padding: 0;
  background-image: url(../layout/tlo.gif);
  height: 100%;
  background-repeat: repeat; /* zamiast repeat-x, repeat-y*/
  background-attachment: fixed;
}
Jarod
Cytat(gekon @ 2006-02-28 00:01:20)
Kod
/*jednak to, sprawdzalem :)*/
body{
margin: 0;
padding: 0;
}
#kontener {
  margin: 0px 11%; /* tu zamiast -8, 0*/
  padding: 0;
  background-image: url(../layout/tlo.gif);
  height: 100%;
  background-repeat: repeat; /* zamiast repeat-x, repeat-y*/
  background-attachment: fixed;
}

Dziękuje działa - wcześniej źle zrozumiałem. ALE jest nadal jeden problem. Pod IE widać powielanie tła w dół (mógłbym zrobić jednokolorowe ale dlaczego mam rezygnować z czegoś bo IE źle interpretuje?). Mianowicie tło jest fixed czyli ma się nie przesuwać. Mam wycięty pasek (długości tła) i szerokości np 5px i jest on powielany w szerz i wzdłuż. Pod Operą i FF jest ok ale pod IE załamka :/

Kod ten co podany wcześniej z uwzględnieniami gekona a efekt taki:

IE

Firefox i Opera

W FF i Operze jeśli tekst jest dłuższy nisz tło to i tak dobrze wygląda bo tło jest fixed a IE sobie dokłada pasek jeszcze raz i (co długoś paska tła) widać powielanie..


@comzit: Nie mogę zostosować tła dla body bo chcę mieć puste pola po lewej i prawej sttronie bo tak jest wykonany lay.
comzit
Po pierwsze tło musi się powielać i w dół bo tak masz ustawione:

Cytat
background-repeat: repeat;


Po drugie ustawianie fixed dla tła jakiegoś pudełka nic ci nie da. Przesuwasz całe pudełko a nie tylko jego tło.

No chyba, że nie rozumiem do końca o co ci z tym tłem chodzi.
Jarod
Cytat(comzit @ 2006-02-28 11:08:04)
Po pierwsze tło musi się powielać  i w dół bo tak masz ustawione:

Cytat
background-repeat: repeat;


Po drugie ustawianie fixed dla tła jakiegoś pudełka nic ci nie da. Przesuwasz całe pudełko a nie tylko jego tło.

No chyba, że nie rozumiem do końca o co ci z tym tłem chodzi.

Czyli w tym momencie FF i Opera nie respektują standardów? Bo pod tymi dwoma jest ok..

Jak dam dla #kontener tylko
Kod
  background-repeat: repeat-x;
  background-attachment: fixed;


To pod FF i Operą tło jest rociągane wraz z blokiem div a pod IE TO
code46
Zrób tło jednokolorowe biggrin.gif
Jarod
Cytat(code46 @ 2006-02-28 18:29:03)
Zrób tło jednokolorowe biggrin.gif

Kolego nie chcę być niemiły ale zapytam się wprost: Cycki Cię nie boląquestionmark.gif

Nie będę robił jednokolorowego tła bo IE pierd*** zasady.

Problem w tym, że IE potrafi zaczepić tło tylko dla body a to rozwiązanie odpada.

Może ma ktoś jakiś pomysł (oprócz code46) ?
comzit
Już pisałem wcześniej o tym. Jest jakieś obejście dla tego IE unieruchamiające (chyba) całe pudełko. Musisz tylko poszukać na forum, to był link z gotowym rozwiązaniem.

A jak nie to mozesz pokombinować z tłem dla BODOY o potem przysłonić to co "wystaje" innymi warstwami.
revyag
Cytat
Jest jakieś obejście dla tego IE unieruchamiające (chyba) całe pudełko. Musisz tylko poszukać na forum, to był link z gotowym rozwiązaniem.


A pewnie że był smile.gif
klik
Jarod
Cytat(revyag @ 2006-03-01 09:08:10)
Cytat
Jest jakieś obejście dla tego IE unieruchamiające (chyba) całe pudełko. Musisz tylko poszukać na forum, to był link z gotowym rozwiązaniem.


A pewnie że był smile.gif
klik

Dziękuje ale niestety to nie działa. Z dokumentu który podałeś wnioskuje że chodzi o dodanie dla #kontener definicji

Kod
position: absolute;


To sprawia, że pod FF tło dopasowuje się do szerokości wypełnienia bloku tekstem a tło nie jest powielane a w IE wogóle wszystko się sypie.. :/

Może ja już nie łapie o co chodzi ale próbowałem wszystkiego.. :/
code46
Zajrzyj w kod i porównaj. A cycki to ciebie swędzą.
Jarod
@Moderator: Czy nie uważasz, że code46 przegina? To jest forum a nie targowisko..


Zajrzałem w kod i fragment, który jest odpowiedzialny za zakotwiczenie tła pod IE to:

Kod
    @media screen
   {
   /* Don't do this at home */

   * html
     {
     overflow-y: hidden;
     }


   * html body
     {
     overflow-y: auto;
     height: 100%;
     padding: 0 1em 0 14em;
     }
   * html div#fixedBox
     {
     position: absolute;
     }


1. Co znaczy @media screen ? Pierwszy raz się z czymś takim spotykam
2. Dlaczego powtarzają się definicje
Kod
* html
* html body[code] ?

3. Mam duży problem ze zgraniem tego z moim css. Czy ktoś może mi w tym pomóc? Rozjeżdża mi się wszystko pod IE :/

Mój poprawiony styl:
[code]
/* Styl główny */
/* Układ strony */

body {
  margin: 0;
  padding: 0;
}

#kontener {
      margin: 0px 11%;
      padding: 0;
      background-image: url(../layout/tlo.gif);
      height: 100%;
      background-repeat: repeat-x;
      background-attachment: fixed;
}

    @media screen
   {

   * html
     {
     overflow-y: hidden;
     }


   * html body
     {
     overflow-y: auto;
     height: 100%;
     padding: 0 1em 0 14em;
     }
   * html div#kontener
     {
     position: absolute;
     }
       }


#belka {  
    margin: 0;
    padding: 0;
      background-image: url(../layout/belka.gif);  
      width: 100%;
      height: 131px;
}


/* Reszta */

p {
    margin: 0;
    padding: 0;
}
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.