<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
...
</head>
<body>
<div id="background">tu tre��</div>
</body>
</html>
Do tego style:
html {
margin: 0px;
padding: 0px;
min-height: 100%;
height:auto;
}
body {
background-image: url(../pictures/siteBackground2.png);
background-repeat: repeat-x;
margin: 0px;
padding: 0px;
min-height: 100%;
height:auto;
}
#background {
background-image: url(../pictures/siteBackground.png);
background-position: left bottom;
background-repeat: no-repeat;
min-height: 100%;
width: 100%;
}
Je�li okno przegl�darki jest mniejsze ni� zawarto��, to t�o #background
rysuje si� poprawnie: na spodzie okna przegl�darki. Gdy zwi�ksz� wysoko��
okna to t�o zastyga na wysoko�ci ostatniego elementu strony - nie spada
ni�ej. Sprawdzi�em: dolna granica <body> nie przylego do dolnej granicy okna
przegl�darki. Gdy ustawi� wysoko�� body na 100% - to wtedy jest ok, ale �le
zaczyna si� dzia� gdy zawarto�� strony jest wy�sza ni� wysoko�� okna. Gdy
np. t�o i sp�d okna wypad�y w po�owie wysoko�ci zawarto�ci strony to gdy
zaczn� przewija� stron� do do�u - backdround leci do g�ry wraz z tre�ci� tej
strony.
Czy da si� zmusi� t�odo bycia zawsze w lewym dolnym rogu okna?
W tej chwili napisa�em procedur� w JS, lecz jest to chore obej�cie:
function fixBackground()
{
var h, tmp=document.getElementsByTagName("html");
h=tmp[0].offsetHeight;
tmp=document.getElementsByTagName("body")
tmp[0].style.height=h+"px";
}
window.onload=fixBackground;
window.onresize=fixBackground;
Chcia�em osi�gn�� ten efekt stosuj�c min-height: 100%. Niestety HTML
(IE8/FF) nie reaguje na to tak jakbym oczekiwaďż˝.
A ja spróbowałem dać zamiast
#background dać html
przypisałem te wszystkie style do <html> czasem się tak robi...
i powstało:
html {
background-image: url(../pictures/siteBackground.png);
background-position: left bottom;
background-repeat: no-repeat;
min-height: 100%;
width: 100%;
}
W Firefox 3.5.5 i Internet explorer 8.0 działa w innych nie
testowałem, może to także chory pomysł ale działa ;)
A drugi background do <body> ? Od tego zaczyna�em. Niczego to nie zmieni�o.
Okazuje si�, �e <body> mimo ustawienia min-height na 100% ko�czy si� tam
gdzie zawarto�� strony.
html {
margin: 0px;
padding: 0px;
min-height: 100%;
height:auto;
}
body {
background-image: url(../pictures/siteBackground.png);
background-repeat: no-repeat;
background-position: left bottom;
margin: 0px;
padding: 0px;
min-height: 100%;
height:auto;
}
#background {
background-image: url(../pictures/siteBackground2.png);
background-repeat: repeat-x;
min-height: 100%;
width: 100%;
}
A jak to działa ? Działa ponieważ body ma zawsze height: 100%; to
umieszczamy ten symbol czy coś tam na dole w <body>(background-
position: left bottom;) a skoro nasz <div> zawsze będzie zaczynał się
u samiutkiej górnej krawędzi strony to umieszczamy w nim tło z
powtarzaniem poziomym (background-repeat: repeat-x;) i gotowe ;) Myślę
że to chciałeś uzyskać
Pozdrawiam Wywrota
Czy mog� Ci wys�a� na email adres strony? Nie chc� go publikowa�. S�dz�, ze
u�atwi nam to spraw�.
Dlaczego powtarzalnego tła nie przypiszesz do html zamiast
body/dodatkowego diva?
--
Bastet_Milo
Owszem napisz mi adres na email myśle że nie jesteś taki upierdliwy
jak czasem bywają ludzie :| Tylko nie jestem pewien czy da się to już
obejść jeszcze pomyślę
Wszystko rozbija się o "position:fixed; bottom:0px; left:0px; height:
100%; width: 100%;" <- chyba tego nie muszę tłumaczyć
Właśnie takie właściwości (chyba takie xD) ma body. Sprawdziłem kod w
Firefox 3.5.5 i IE 8.0 i zamierzony efekt działa ;)
Podaj jednak link do strony chciałbym zobaczyć jak to dokładnie
funkcjonuje (pisz na maila)
Chyba z 5 razy kasowałem wpisy bo źle napisałem ;) raz za dużo kodu
znowu wpadł mi lepszy pomysł... ech tam masz gotowca ;)
CSS:
html {
margin: 0px;
padding: 0px;
height: 100%;
background-image: url(../pictures/siteBackground2.png);
background-repeat: repeat-x;
}
body {
margin: 0px;
padding: 0px;
height: 100%;
}
#background {
background-image: url(../pictures/siteBackground.png);
background-repeat: no-repeat;
background-position: left bottom;
position:fixed;
bottom:0px;
left:0px;
height: 100%;
width: 100%;
}
HTML (nie zmienia się - jest taki sam jak na starcie)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
...
</head>
<body>
<div id="background">tu treść</div>
</body>
</html>
To akurat był akt rozpaczy. Najpierw próbowałem z html jednakże nie chciało
zadziałać. Uzyskałem efekt, że dodanie background-color do html skutkowało,
że <body> przestawało zajmować 100% wysokości. Wtedy dodałem DIV'a i takim
etapemrozważań zacząłem operować na grupie. Tak czy owak problemu to nie
rozwiązuje.