J'essaie d'accomplir cette conception: Où la barre latérale sera fixée, mais le côté droit (le contenu principal) défilera verticalement (et potentiellement horizontalement si la fenêtre du navigateur de l'utilisateur est plus petite). Quelle est la meilleure façon d'y parvenir?
J'ai essayé de faire en sorte que la barre latérale soit "fixe" avec une largeur fixe de 200 pixels, puis le contenu principal a juste une marge gauche de 200 pixels. Cependant, si le navigateur de l'utilisateur est alors plus petit que le contenu principal, la barre latérale chevauche tout le contenu lorsque l'utilisateur essaie de faire défiler horizontalement.
Existe-t-il un moyen plus intelligent d'y parvenir? Merci!
Utilisez la div de contenu comme conteneur pour la page.
.sidebar {
position: fixed;
width: 200px;
height: 400px;
background: #000;
}
.content {
margin-left: 200px;
height: 500px;
width: auto;
position: relative;
background: #f00;
overflow: auto;
z-index: 1;
}
.info {
width: 1440px;
height: 300px;
position: relative;
background: #f55;
}
<div class="sidebar"></div>
<div class="content">
<div class="info"></div>
</div>
Votre contenu devra être le conteneur dans lequel mettre la page. Les valeurs ici sont mon test pour voir si j'ai raison. Si votre largeur et votre hauteur dépassent les valeurs que vous avez définies pour le contenu, les barres de défilement apparaissent.
Avoir un violon: http://jsfiddle.net/djwave28/JZ52u/
édition: barre latérale réactive
Pour avoir une barre latérale fixe réactive, ajoutez simplement une requête multimédia.
Exemple:
@media (min-width:600px) {
.sidebar {
width: 250px;
}
.content {
margin-left: 250px;
}
}
Voici un autre violon: http://jsfiddle.net/djwave28/JZ52u/363/
Voici une alternative: http://jsfiddle.net/BoyWonder/8mVQX/embedded/result/
body{
padding-left:200px;
margin:0;
}
div#sidebar{
position:fixed;
height:100%;
width:200px;
top:0;
left:0;
background:grey;
}
div#content{
background:black;
width:100%;
height:1600px;
}