En-tête statique + menu, corps déroulant
C'est ce que je suis en train de réaliser:
+--------écran-----------------------+ | ______________________ |*| | |_statique_en-tête______| |*| | | | | |*| | | contenu |menu | |*| | | défilement |static| |*| | | | | |*| | | | | |*| | | | | |*| +-------------------------------------+
Le contenu est de hauteur variable, et le contenu de la barre de défilement doit être afficher dans la page (et non pas sur que c'est sur la zone).
J'ai réussi à obtenir l'idée de base, mais je vais avoir de la difficulté à obtenir le div du contenu dans position correcte lorsque la barre de défilement indique, et même si je l'ai mis pour toujours afficher les barres de défilement, je ne peux pas utiliser une largeur fixe, parce qu'ils diffèrent en fonction du navigateur.
<div style="position:absolute; background-color:Transparent; left:0px; right:0px; height:100px; z-index:2;">
<div style="background-color:Silver; width:1000px; height:100px; margin:0 auto;">
Header
</div>
</div>
<!-- Fixed div acting as the body "page" so the scrollbar shows as the page's -->
<div style="position:absolute; left:0px; top:0px; bottom:0px; right:0px; overflow-y:auto; padding-top:100px; z-index:1;">
<div style="position:relative; width:800px; height:100%; margin:0 auto; padding-right:200px;">
<div style="background-color:Orange; width:100%; height:900px;">
Content
</div>
</div>
</div>
<div style="position:absolute; left:50%; right:0px; padding-top:100px; z-index:0;">
<div style="width:500px; float:left;">
<div style="background-color:Green; float:right; width:200px; ">
Menu
</div>
</div>
</div>
Dans le code ci-dessus le contenu de la barre de défilement de la largeur, comment puis-je obtenir à droite avec le reste de la page (ie. calcul de la position sans tenir compte de la largeur de la barre de défilement, même si elle en a un)?
source d'informationauteur Danicco
Vous devez vous connecter pour publier un commentaire.
Si je comprends votre problème correctement ce sera une solution: http://jsfiddle.net/7pJS8/
Solution Possible: http://jsfiddle.net/zWERN/
Il y a des façons de le faire avec des hauteurs fixes et ensuite utiliser la propriété overflow sur le défilement des zones. Cependant, ce n'est pas une bonne pratique, ce que vous devriez regarder est à l'aide d'un collant en-tête ou le défilement de l'en-tête (celui qui suit l'affichage de la zone que l'utilisateur fait défiler en haut et en bas) de jQuery ou de votre bibliothèque JS de choix.
N'est pas
position:fixed
résoudre votre problème? Si vous définissezposition:fixed
à en-tête et le menu div?Réglage d'un rouleau sur l'ensemble de la page, pourrait entraîner la disparition de l'en-tête et le menu - lorsque le contenu est long.
Ce que vous cherchez est un sous-ensemble de la Saint Graal de la conception.
Ici's une mise en œuvre à l'aide de la fonction "flex" display: