Ok, ragazzi e uccelli, ecco cosa ho finito per fare. Invece di risolvere il problema direttamente, ho aggiunto alcune div fixer.
Prima di tutto, qui ci sono alcune osservazioni:
Sappiamo che quando #column
è più lungo del viewport, la lunghezza del #column
deve specificare l'altezza di <body>
.
Se #column
è più corto del viewport, l'altezza della finestra deve specificare l'altezza di <body>
.
La colonna deve estendersi fino in fondo alla pagina in tutte le circostanze, indipendentemente dal tempo in cui è contenuto.
Per il primo criterio che dobbiamo fare in modo che height: auto
sorge sul <body>
. Height
defaluts a questo se non è impostato. Dobbiamo inoltre assicurarci che #column
disponga di height: auto;
e overflow: hidden;
in modo che si espanda alla dimensione del suo contenuto.
Per il secondo criterio è necessario impostare position: absolute;
e min-height: 100%;
su <body>
. Ora la lunghezza di <body>
si espande quando #column
è più lunga di quella, ma non si accorcia più della finestra. La prossima parte è dove arriva la correzione.
Per il terzo criterio, il trucco è aggiungere alcune div aggiuntive e dare loro dei css speciali. Nel mio HTML ho aggiunto due div al di fuori di #column
.
<div id="colhack-outer">
<div id="colhack-inner">
</div>
</div>
<div id="column">
...
</div>
per il div esterno si postiion assolutamente e impostare è l'altezza al 100%, forzarlo ad utilizzare un modello di dialogo alternativo e spostare è area di contenuto utilizzando imbottitura. Si applica tutto lo stile della colonna (colore di sfondo, raggio del bordo, ombra, ecc.) Al div interno. Ecco l'CSS ho applicato a loro:
#colhack-outer {
height: 100%;
padding: <where you want to shift the column to>;
position: absolute;
width: 50%;
}
#colhack-inner {
height: 100%;
width: 100%;
background-color: #303030;
}
Hai anche a rendere il vostro contenitore di contenuto effettivo utilizzare quel modello speciale scatola e spostarlo con imbottitura troppo:
#contentbox {
position: relative;
padding: <where you want to shift the column to>;
width: 50%;
color: #EEEEEC;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
esempio vivo qui: http://nerdhow.net/
posta un commento se avete domande o se qualcosa non era chiaro.
Ho un esempio live su http://nerdhow.net/ (è la prima pagina) '# contentcolumn' corrisponde a' # wrapper' e '.region-content' a' # content' – enthdegree
Aggiungerò un immagine per illustrare meglio ciò che voglio. – enthdegree
Hai preso in considerazione l'utilizzo di min-altezza? Ti consentirà di impostare l'altezza minima del contenuto div, indipendentemente dal contenuto al suo interno. Si espanderà quindi per soddisfare le tue esigenze. – Paragon