Avatar billede chrisbuchholz Nybegynder
03. februar 2009 - 19:21 Der er 6 kommentarer

Placere div i bunden ligegyldigt hvad

Hej,

jeg har en side der indeholder en content-wrapper og en footer-wrapper og det er så meningen at footeren skal være i bunden af siden (bunden af browseren - bunden af browseren hvis ingen scroll, bunden af siden hvis scroll).

Lige nu er footeren kun i bunden når den bliver presset ned af indholdet i content-wrapperen, men jeg kunne godt tænke mig at hvis indholdet af content ikke fyldte browseren ud så der kom en scrollbar, så var footeren stadigvæk nede i bunden af siden, som den ville være hvis den blev skubbet ned.

Jeg har kun kunne komme på nogen dumme løsninger ved hjælp af position absolute/fixed, som dog alligevel ikke ville virke perfekt, samt noget overkill med javascript.
Jeg ville dog ønske det kunne gøres kun i CSS.
Avatar billede zips Juniormester
04. februar 2009 - 15:49 #1
Her er et forsøg, det er noget jeg har fundet som ser ud til at det er det du søger.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Footer at the bottom of the viewport</title>
<style type="text/css">

html, body, #wrapper {
    min-height: 100%;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    }

html>body #wrapper {
    height: auto;
    }
   
html {
    background-color: #fff;
    }

body {
    font: 100% verdana, helvetica, sans-serif;
    background-color: gray;
    color: #333;
    position: relative;
    width: 80%;
    margin: 0 auto;
    outline: 1px dotted red;
    }



#wrapper {
    position: absolute;
    top: 0;
    left: 0;
    }

#main {
    height: auto;
    padding: .5em;
    padding-bottom: 3em; 
    background-color: #fee;
    }


#pageheader {
    border: 0 none;
    display: table;
    width: 60%;
    }


#footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    text-align: center;
    background-color: #eef;
    }

</style>

</head>

<body>
  <div id="wrapper">
    <div id="main">
      <div id="pageheader">
        <span class="light">html and css playpen</span>
        <hr />
      </div>
<h1>Lock the footer to the bottom of viewport</h1>
<p>The footer will sit at the bottom of the viewport unless the content pushes it down.</p>

      <p>Put your whole page in #main, everything except the footer.</p>
      <!-- uncomment the following to see long content -->
<!--
      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>
-->
    </div><!-- end main -->

    <div id="footer">
      <p>Put your footer stuff here.</p>
    </div><!-- end footer -->
  </div><!-- end wrapper -->
</body>
</html>
Avatar billede zips Juniormester
04. februar 2009 - 15:49 #2
Her er et forsøg, det er noget jeg har fundet som ser ud til at det er det du søger.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Footer at the bottom of the viewport</title>
<style type="text/css">

html, body, #wrapper {
    min-height: 100%;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    }

html>body #wrapper {
    height: auto;
    }
   
html {
    background-color: #fff;
    }

body {
    font: 100% verdana, helvetica, sans-serif;
    background-color: gray;
    color: #333;
    position: relative;
    width: 80%;
    margin: 0 auto;
    outline: 1px dotted red;
    }



#wrapper {
    position: absolute;
    top: 0;
    left: 0;
    }

#main {
    height: auto;
    padding: .5em;
    padding-bottom: 3em; 
    background-color: #fee;
    }


#pageheader {
    border: 0 none;
    display: table;
    width: 60%;
    }


#footer {
    position: absolute;
    bottom: 0;
    width: 100%;
    text-align: center;
    background-color: #eef;
    }

</style>

</head>

<body>
  <div id="wrapper">
    <div id="main">
      <div id="pageheader">
        <span class="light">html and css playpen</span>
        <hr />
      </div>
<h1>Lock the footer to the bottom of viewport</h1>
<p>The footer will sit at the bottom of the viewport unless the content pushes it down.</p>

      <p>Put your whole page in #main, everything except the footer.</p>
      <!-- uncomment the following to see long content -->
<!--
      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>

      <p>spacer</p>
-->
    </div><!-- end main -->

    <div id="footer">
      <p>Put your footer stuff here.</p>
    </div><!-- end footer -->
  </div><!-- end wrapper -->
</body>
</html>
Avatar billede zips Juniormester
04. februar 2009 - 15:50 #3
Ja det er jo bare dejligt med dobbelt indlæg, undskylder :-)
Avatar billede chrisbuchholz Nybegynder
04. februar 2009 - 19:43 #4
Ah, der må sku være en pænere og mere efficient metode, Zips:)
Avatar billede darkstylerdk Nybegynder
04. februar 2009 - 20:49 #5
zips: jeg er glad for dinhjælp, men der må være noget bedre at gøre?
Avatar billede zips Juniormester
04. februar 2009 - 21:12 #6
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester