2012-05-19 10 views
5

Je veux une barre latérale qui prend toute la hauteur de l'écran et ne change pas lors du défilement vers le bas.CSS: Barre latérale 100% hauteur sans défilement

Donc quand je fais défiler seulement le contenu change mais la barre de navigation reste toujours la même.

J'ai fait un premier exemple: http://jsfiddle.net/CwSD6/

Mais la fonctionnalité ne manque-scroll ...

Cordialement

EDIT: Vous devez utiliser la position: fixe, et en haut, en bas , à gauche avec la valeur 0. http://jsfiddle.net/CwSD6/1/

+0

peut utiliser jQuery? – ShibinRagh

+0

Déjà trouvé moi-même. Pas besoin de jQuery. http://jsfiddle.net/CwSD6/1/ – bodokaiser

+0

woow super, avez-vous vérifier par exemple? – ShibinRagh

Répondre

7

il peut être fait en faisant position: fixed; dans <aside>

voir ce violon jsfiddle

+0

Est-il possible de positionner le .content de façon dynamique à l'écart? Alors que le contenu s'aligne automatiquement à la frontière de côté? – bodokaiser

3

Essayez ceci:

aside 
{ 
    position: fixed; 
    width: 200px; 
    height: 100%; 
    top: 0; 
    left: 0; 
    border: 1px solid #111; 
} 

Hope this helps

+0

Ops ... ma réponse était en retard ... – user1355061

0

J'utilise la méthode jQuery en utilisant des vis fixes ou généralement absolue avec ma mise en page de la grille. Dans l'exemple ci-dessous, ma grille s'effondre lorsqu'elle est inférieure à 990px, vous devrez donc la modifier en supposant que vous êtes réactif.

$(window).resize(function() { 
    var doc_height = $(document).height(); 
    var doc_width = $(document).width() 
    if (doc_width > 990) { 
     $('#sidebar').css("height", doc_height); 
    } else { 
     $('#sidebar').css("height", 'auto'); 
    } 
}); 

Bien que cela ne soit pas le moyen le plus efficace, vous n'avez pas besoin de définir des variables. Je trouve que cela aide à la lisibilité.

Cordialement, M