2013-04-12 10 views
6

Ho un piccolo problema, voglio che il mio footer rimanga nella parte inferiore dello schermo con position: absolute. Ma il mio margin: auto per metterlo in mezzo allo schermo non funziona più.Posizione assoluta e margine: auto

html:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'> 
     <link rel="shortcut icon" href="../IMAGES/favicon.ico"> 
     <title>TEST</title> 
     <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro' rel='stylesheet' type='text/css'> 
     <link rel="stylesheet" href="../css/stylesheet.css"> 
    </head> 
    <body> 
     <div id="header"> 
      <div id="logo"> 
       <img src="../IMAGES/logo.png" /> 
      </div> 
      <div id="logotitel"> 
       Den Allerstrafste "Ful-Ambi" Live-Band van groot Antwerpen en omstreken! 
      </div> 
     </div> 
     <div id="nav"> 
      <div id="links"> 
       <a href="index.php"><div class="link">Home</div></a> 
       <a href="wie.php"><div class="link">Wie is wie</div></a> 
       <a href="fotos.php"><div class="link">Foto's</div></a> 
       <a href="repertoire.php"><div class="link">Repertoire</div></a> 
       <a href="links.php"><div class="link">Links</div></a> 
       <a href="contact.php"><div class="link">Contact</div></a> 
      </div> 
     </div> 
     <div class="clear"></div> 
     <div id="content"> 
      TEST 
     </div> 
     <div class="clear"></div> 
     <div id="footer"> 
      <div id="copy"> 
       Developed by Yoshi &copy vAntstAd 
      </div> 
     </div> 
    </body> 
</html> 

CSS:

/* PAGE LAYOUT */ 
html 
{ 
     padding: 0px; 
     margin: 0px; 
} 

body 
{ 
     background-image: url(../IMAGES/background.png); 
     padding: 0px; 
     margin: 0px; 
     color: white; 
     font-family: 'Source Sans Pro', serif, sans-serif; 
} 

.clear 
{ 
     clear: both; 
} 

/* HEADER */ 
#header 
{ 
     width: 1100px; 
     height: 150px; 
     background-color: #282828; 
     margin: auto; 
     border-bottom: solid; 
     border-color: red; 
} 

#logo 
{ 
     width: 283px; 
     height: 100px; 
     margin: auto; 
} 

#logotitel 
{ 
     width: 1100px; 
     height: 50px; 
     line-height: 50px; 
     text-align: center; 
     font-size: x-large; 
} 

/* NAV */ 
#nav 
{ 
     width: 1100px; 
     height: 50px; 
     margin-top: 25px; 
     margin-right: auto; 
     margin-left: auto; 
     margin-bottom: 25px; 
     background-color: red; 
} 

#links 
{ 
     width: 600px; 
     height: 50px; 
     margin: auto; 
} 

.link 
{ 
     width: 100px; 
     height: 50px; 
     line-height: 50px; 
     float: left; 
     text-align: center; 
     color: white; 
     text-decoration: none; 
} 

.link:hover 
{ 
     color: #282828; 
     text-decoration: underline; 
} 

/* CONTENT */ 

#content 
{ 
     width: 1100px; 
     height: auto; 
     margin: auto; 
     color: #282828; 
     position: relative; 
} 

/* FOOTER */ 

#footer 
{ 
     width: 1100PX; 
     height: 50px; 
     position: absolute; 
     bottom: 0; 
     margin: auto; 
     background-color: #282828; 
} 

#copy 
{ 
     width: auto; 
     float: right; 
     margin-right: 5px; 
     height: 50px; 
     line-height: 50px; 
} 
+1

La tua domanda è un po 'di codice. Per un aiuto migliore prima, pubblica un [SSCCE (link)] (http://sscce.org). – Doorknob

+0

anwnser può essere trovato qui: http://stackoverflow.com/questions/9998260/css-absolute-position-wont-work-with-margin-leftauto-margin-right-auto –

+0

Eventuale duplicato: http: // stackoverflow. it/questions/9350775/set-position-absolute-and-margin – showdev

risposta

12

Dal momento che si conosce la larghezza del piè di pagina (1100px), appena si può fare un left:50%;margin-left:-550px per centrarla.

Esempio: Centrare un elemento posizionato in modo assoluto
http://jsfiddle.net/vdWQG/

Pertanto, piè di pagina sarebbe diventato:

#footer 
{ 
    width: 1100PX; 
    height: 50px; 
    position: absolute; 
    bottom: 0; 
    left:50%;   /* Add this */ 
    margin-left:-550px; /* Add this (this is half of #footers width) */ 
    background-color: #282828; 
} 

Se si desidera che l'elemento a bastone sulla parte inferiore della pagina, come l'utente scorre verso il basso, utilizzare position: fixed anziché position:absolute

+0

Ma non funziona quando la pagina è più lunga dello schermo, rimane in quella posizione? rendering? primo. ( –

+0

@YoshiPeters usa 'position: fixed' invece di' absolute'. Risposta aggiornata – Jace

+1

grazie ora funziona come lo voglio! –

3

Per avere un piè di pagina in fondo, centrato in orizzontale, è possibile applicare il seguente CSS:

footer{ 
    width: 100%; 
    max-width: 600px; 
    position: fixed; 
    left: 0; 
    right: 0; 
    bottom: 0; 
    margin: 0 auto; 
} 

Questo sarà centrare l'elemento fisso, ma sarà anche tenerlo reattivo, in quanto si ridurrà quando il browser ha diventare meno largo del piè di pagina.

Vai a questa Fiddle per un esempio