Du bist nicht angemeldet (anmelden)
Supertopic » Forum » Webentwicklung » XHTML / CSS » Erledigt: CSS: Background-Image im Body, bottom & fixed
Seite 1
Erledigt: CSS: Background-Image im Body, bottom & fixed
Guten Abend liebe Wissenden 
Folgendes Problem:
Ich habe im <body> ein Hintergrundbild, welches fixed an den botton positioniert wird - also so:
html, body { height: 100%; }
body { background: #fff url(hintergrund.jpg) no-repeat bottom left fixed; }
... alles weitere sei mal eben ausgeblendet....
Soweit so gut. Nun möchte ich aber, dass wenn das Browserfenster kleiner als Höhe x ist, das Hintergrundbild sich nicht mehr höher schiebt...also quasi als ob man dem body zusätzlich ein min-height geben würde.
Grund ist, ich habe im oberen Bereich Inhalte, unter die das Hintergrundbild nicht geschoben werden sollte.
Steh ich nur auf dem Schlauch, oder ist das wirklich nicht möglich? ...von mir aus darf die Lösung auch JavaScript sein...
Hoffe das war einigermaßen verständlich
Folgendes Problem:
Ich habe im <body> ein Hintergrundbild, welches fixed an den botton positioniert wird - also so:
html, body { height: 100%; }
body { background: #fff url(hintergrund.jpg) no-repeat bottom left fixed; }
... alles weitere sei mal eben ausgeblendet....
Soweit so gut. Nun möchte ich aber, dass wenn das Browserfenster kleiner als Höhe x ist, das Hintergrundbild sich nicht mehr höher schiebt...also quasi als ob man dem body zusätzlich ein min-height geben würde.
Grund ist, ich habe im oberen Bereich Inhalte, unter die das Hintergrundbild nicht geschoben werden sollte.
Steh ich nur auf dem Schlauch, oder ist das wirklich nicht möglich? ...von mir aus darf die Lösung auch JavaScript sein...
Hoffe das war einigermaßen verständlich
hast du schon mal probiert, ob der Body ein min-height akzeptiert?
Ansonsten vielleicht dem Inhalt (div?) ein min-height geben, dann wird bei kleiner Auflösung ja automatisch gescrollt und das Hintergrundbild sollte „unten“ sein.
Ansonsten vielleicht dem Inhalt (div?) ein min-height geben, dann wird bei kleiner Auflösung ja automatisch gescrollt und das Hintergrundbild sollte „unten“ sein.
Nope - funktioniert so nicht.
Das Problem liegt denke ich mal im „fixed“ - also background-attachment: fixed;
Das scrollen löst das Problem ja genau wegen dem fixed nicht. Nur muss das Hintergrundbild fixed sein
Das Problem liegt denke ich mal im „fixed“ - also background-attachment: fixed;
Das scrollen löst das Problem ja genau wegen dem fixed nicht. Nur muss das Hintergrundbild fixed sein
Editiert: 26.11.10, 19:42 Uhr
öhm, stimmt. dann muss ich nochmal überlegen E: meine hirn funktioniert heut net richtig (zuviel chili
was mir noch eingefallen wäre, ist die höhe vom browserfenster auslesen (javascript) und dann nicht „bottom“ beim hintergrundbild verwenden, sondern höheBrowserfenster + x. Dann evtl. noch beim Inhalt Höhe oder Abstand hinzufügen (nach unten hin). Allerdings geht das nicht, weil sich da das hintergrundbild aus dem fenster herausschiebt... aaargh
hmhmhmhm
falls es keine css-lösung gibt, evtl so: extra div um den inhalt packen (100% width) mit dem hintergrundbild, höhe vom inhalt auslesen und dann das äußere div entsprechend vergrößern. vlt geht das auch irgendwie wenn der inhalt einen margin-bottom bekommt, unter einer gewissen größe
alles nur so schnell ausgedacht
wenn ich das richtig verstanden habe, könnte folgendes klappen
if ( $(window).height()<=xxx )$('body').css("background-position", "yyypx, left");else$('body').css("background-position", "bottom, left");
caZpa schrieb am 26.11.10, 19:39 Uhr:
wenn ich das richtig verstanden habe, könnte folgendes klappen
Quelltext in Zwischenablage kopieren
if ( $(window).height()<=xxx )$('body').css("background-position", "yyypx, left");else$('body').css("background-position", "bottom, left");
Das klingt auf jeden Fall plausibel! Werde ich morgen probieren
Rusty schrieb am 26.11.10, 20:12 Uhr:
http://ryanfait.com/sticky-footer/ ()
Fail
http://martinrack.de/temp/fixedbackgroun...ooter.html
aber keine ahnung welche browser da mitmachen,
gibt bestimmt auch noch ne besser lösung,
war nur mein erster gedanke
aber keine ahnung welche browser da mitmachen,
gibt bestimmt auch noch ne besser lösung,
war nur mein erster gedanke
http://martinrack.de/temp/fixedbackgroun...oter2.html
wenns in dem <div> sein darf
position: fixed, wenn der background keine scrollbars erzeugen soll
und statt min-height könnte man auch padding-top nehmen
wenns in dem <div> sein darf
position: fixed, wenn der background keine scrollbars erzeugen soll
und statt min-height könnte man auch padding-top nehmen
Ich hab' da mal was vorbereitet - so als denkhilfe 
Übrigens: Die css() funktion ist elendig langsam. Mach sowas lieber über klassen.
CSS:
JS:
//
Örgs. Oder so. Ich denke zu kompliziert manchmal.
Übrigens: Die css() funktion ist elendig langsam. Mach sowas lieber über klassen.
CSS:
body {background: #fff url(http://dummyimage.com/500x100/d00/fff.gif) no-repeat left 100px fixed; }}body.fixed { background: #fff url(http://dummyimage.com/500x100/d00/fff.gif&text=fixed) no-repeat bottom left fixed;}
JS:
$(document).ready(function() {bodyMin = 100; // ab da oder größer soll's fix positioniert sein$window = $(window); // window objekt cachen$body = $('body'); // body objekt cachenfunction adjustBodyBg() {if($window.height()>bodyMin) { // wenn fensterhöhe größer füge klasse "fixed" hinzu$body.addClass('fixed');} else { // sonst nimm sie weg$body.removeClass('fixed');}};adjustBodyBg(); // initial ein mal setzen$window.resize(function() { // bei jedem resize des fenstersadjustBodyBg();});});
//
Martin R. schrieb am 26.11.10, 21:36 Uhr:
http://martinrack.de/temp/fixedbackgroun...oter2.html
wenns in dem <div> sein darf
position: fixed, wenn der background keine scrollbars erzeugen soll
und statt min-height könnte man auch padding-top nehmen
Örgs. Oder so. Ich denke zu kompliziert manchmal.
