Få en DIV sist på sidan eller längst ner i fönstret beroende på mängden innehåll

Permalänk
Medlem

Få en DIV sist på sidan eller längst ner i fönstret beroende på mängden innehåll

Hej!

Har en bunke DIVs som hela min sida bygger på. De flesta DIVs är relative så de kommer hela tiden efter varandra.
Han en DIV som alltid kommer sist på sidan, längst ner under alla andra DIVs. Mitt problem är dock att om ovanförliggande DIV inte innehåller så mycket text så vill jag ha sista DIVen längst ner i webbläsaren, och inte 20px under ovanförliggande DIV som det ska vara i alla andra fall.

På den här sidan ser ni hur det fungerar när ovanförliggande DIV har mycket text i sig:
https://www.endgame.se/page/news.php

På den här sidan ser ni hur det blir om ovanförliggande DIV inte har så mycket text i sig:
https://www.endgame.se/page/book.php

Som ni ser i sista exemplet så blir det en glipa mellan sista DIVen och webbläsarens kant, samt att hela loggan inte syns till vänster eftersom sista DIVen hamnar för långt upp. Någon som har någon kreativ idé på hur man löser detta?

Mvh

Permalänk
Medlem
Permalänk
Medlem

Kallas sticky footer.

Det finns en enklare och nyare metod än den crake länka till. Problemet är att den inte funkar i IE7 och IE6.

Visa signatur

Programmerare -> PHP | HTML | CSS | JS | Java.

Permalänk
Medlem
Skrivet av Sony?:

Kallas sticky footer.

Det finns en enklare och nyare metod än den crake länka till. Problemet är att den inte funkar i IE7 och IE6.

Tackar!

Permalänk
Medlem

Ser dock mongo ut i IE 9 och IE 10 också... (hatar IE, varför kan de inte följa samma standard som alla andra?!)
Funkar fint i Chrome och FF, men i IE lägger sig alltid bottom DIV längst ner på skärmen, oberoende av hur mycket text det finns.

Så här ser koden ut (container innehåller alla andra DIVs och bildar själv sidan. bottom DIV ligger utanför containern):

html{ position: relative; min-height: 100%; } body{ margin-top: 0px; margin-bottom: 200px; margin-left: 0px; margin-right: 0px; background-color: #D4D2D2; background-image: url(../image/background.jpg); background-position: center top; background-repeat: no-repeat; } #container{ position: relative; margin-left: auto; margin-right: auto; margin-top: 20px; width: 1110px; height: *; z-index: 2; } #bottom{ position: absolute; left: 0px; right: 0px; bottom: 0px; height: 180px; background-color: #000000; border-top: thin solid #B0B0B0; z-index: 2; }

Permalänk
Medlem

height: *; (som du har på #container) är inte giltig CSS.
I övrigt gissar jag på att du glömt stänga ett element eller har andra formatteringsproblem. IE kan vara känsligt för sådana missar.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Har bytt ut samtliga height: *; mot height: auto; samt kollat igenom så jag inte missat att stänga något eller fått in något knasigt tecken någonstans, men allt ser OK ut. Ser dock lika trasigt ut i IE.

Finns det inte någon speciell kod man måste knacka in för att IE ska fatta? Har Googlat lite och verkar som att min-height inte existerat i IE-världen över huvud taget :/

Permalänk
Medlem
Skrivet av Zakire:

Har bytt ut samtliga height: *; mot height: auto; samt kollat igenom så jag inte missat att stänga något eller fått in något knasigt tecken någonstans, men allt ser OK ut. Ser dock lika trasigt ut i IE.

Finns det inte någon speciell kod man måste knacka in för att IE ska fatta? Har Googlat lite och verkar som att min-height inte existerat i IE-världen över huvud taget :/

Att sätta height till auto är onödigt då auto är defualt-värdet. Och min-height stöds av IE8 och uppåt. Att stödja versioner under IE8 är fullt onödigt om du gör en webbplats för svenskar.

Visa signatur

| i7 920 | UD5 | 6GB | 3TB | Intel SSD 80GB | Antec P182 |
http://webbutveckla.nu - Blogg om webbutveckling

Permalänk
Medlem

Ett tips är även att byta Doctype till HTML5's. <!DOCTYPE html>

Visa signatur

| i7 920 | UD5 | 6GB | 3TB | Intel SSD 80GB | Antec P182 |
http://webbutveckla.nu - Blogg om webbutveckling

Permalänk
Medlem

Ser sidorna du länkade "mongo ut" i Internet Exploder också? I så fall vill jag påstå att felet ligger i Internet Exploder.

Hur fixar man det då?

Kunde ju alltid lagt in en LMGTFY länk men... Aja, google är din vän.

Läs svaret från "namklabs"
http://stackoverflow.com/questions/1095042/div-positionabsolu...

Fungerar inte det så är det bara att googla mer, får du inte löst det så kan du alltid göra så att folk som sitter med IE får en gullig bild på en katt. Det är ändå det dessa människor är ute efter. </sarkasm>

Visa signatur

Chassi: Svart, PSU: 230 volt, Moderkort: Stort, CPU: Med fläkt, Minne: Tappat, GPU: Klarar MsPaint jättebra, Hårddiskar: Stor och liten, Mus: Med rullhjul, Tangentbord: Svenskt, Skärm: Platt

Permalänk
Medlem
Skrivet av Zakire:

Har bytt ut samtliga height: *; mot height: auto; samt kollat igenom så jag inte missat att stänga något eller fått in något knasigt tecken någonstans, men allt ser OK ut. Ser dock lika trasigt ut i IE.

Finns det inte någon speciell kod man måste knacka in för att IE ska fatta? Har Googlat lite och verkar som att min-height inte existerat i IE-världen över huvud taget :/

Ett av problemen är att ditt element #container får height 0 eftersom allt inuti flyter. Detta resulterar i sin tur att body får height 0 (eftersom #bottom är position: absolute räknas den inte med i den totala höjden)

För att fixa detta:

  1. Sätt min-height: 100% på både html och body

  2. Sätt overflow: hidden#container. Detta kommer leda till att #container får rätt höjd, därmed även body

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av J_ajje:

Ett tips är även att byta Doctype till HTML5's. <!DOCTYPE html>

Har ändrat detta nu. Tack!

Skrivet av Teknocide:

Ett av problemen är att ditt element #container får height 0 eftersom allt inuti flyter. Detta resulterar i sin tur att body får height 0 (eftersom #bottom är position: absolute räknas den inte med i den totala höjden)

För att fixa detta:

  1. Sätt min-height: 100% på både html och body

  2. Sätt overflow: hidden#container. Detta kommer leda till att #container får rätt höjd, därmed även body

Nja detta blev inte helt rätt. I FF visas inte hela menyn längst upp, och bottom DIV visas ganska mycket längre ner. I IE visas menyn längst upp korrekt, och även här visas bottom DIV långt ner.

Permalänk
Medlem
Skrivet av Zakire:

Har ändrat detta nu. Tack!

Nja detta blev inte helt rätt. I FF visas inte hela menyn längst upp, och bottom DIV visas ganska mycket längre ner. I IE visas menyn längst upp korrekt, och även här visas bottom DIV långt ner.

#bottom ska väl visas i slutet av sidan eller har jag missuppfattat något?

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

#bottom ska väl visas i slutet av sidan eller har jag missuppfattat något?

Korrekt, men den visas 300 pixlar under "sidans slut" istället för 20 pixlar under.
Är väl i sig inget problem att fixa till, men faktum kvarstår att menyn längst upp försvinner delvis när jag kör med overflow: hidden;