Si verifica uno strano comportamento quando si tenta quanto segue (vedere jsfiddle: http://jsfiddle.net/9nS47/).altezza div bambino 100% posizione interna: div fisso + overflow automatico
HTML:
<div id="slider">
<div id="wrapper">
<div id="navigation"></div>
<div id="container">
<div id="button"></div>
</div>
</div>
</div>
CSS:
HTML,BODY
{ width:100%; height:100%; }
* { margin: 0; padding: 0; }
#slider
{
position: fixed;
top: 0;
bottom: 0px;
left: 100px;
overflow-y: auto;
background-color: red;
}
#wrapper
{
position: relative;
height: 100%;
background-color: #000000;
min-height:400px;
}
#navigation
{
display: inline-block;
width: 80px;
height: 100%;
background-color: #0000FF;
}
#container
{
display: inline-block;
height: 100%;
background-color: #00FF00;
}
#button
{
width: 22px; height: 100%;
float:right;
background-color: #CCFFCC;
cursor:pointer;
}
Quello che sto cercando di fare è fare una barra di navigazione a sinistra che attraversa l'intera altezza della finestra visibile e solo mostra una barra di scorrimento se la sua altezza è più piccolo rispetto ad esempio a 400 px. La barra di scorrimento per quel div sembra essere sempre visibile a causa di alcuni problemi di ridimensionamento (c'è un pixel in più in basso che non riesco a spiegare [colore: rosso]).
Firefox sposta anche il secondo elemento figlio sotto il primo quando la barra di scorrimento è visibile perché la barra di scorrimento sembra essere parte dell'area del contenuto e occupa quindi circa 20px di spazio. Ciò non accade se Overflow: Auto viene sostituito con Overflow: scroll tuttavia.
Lo sportello automatico che modifica il layout (in particolare il Contenitore con posizione: fisso) non è un'opzione.
Non importa lo spazio tra la casella verde e quella blu. Sembra essere un problema di spazio bianco.
Potrebbe importare se usi un po 'di javascript o jQuery? Funzionerebbe se lo facessi. – tahdhaze09
Grazie per la tua risposta, posso usare Javascript o jQuery per risolvere il problema. – Savedro