IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Effet frame avec CSS


Sujet :

CSS

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Effet frame avec CSS
    Bonjour à tous,

    après avoir passé plus d'une journée a essayer toute sorte d'exemple trouvé sur le web, je ne réussis toujours pas a coder correctement ceci :

    J'aimerais avoir une bannière (header) fixe de 800px de large, avec un menu à gauche fixe de 200px de large, puis le contenu à droite qui défile de 600px de large.

    C'est assez facile a réaliser en suivant cet exemple:
    http://css.developpez.com/galerie/?p...se-en-page#mp2

    Ce que je n'arrive pas a faire par contre, c'est que le tout soit centré sur la page !!!

    Pour dire autrement, il y aurait à de gauche à droite :
    -Colonne de largeur variable
    -Colonne de 800px où on retrouve la bannière ainsi que le menu et le contenu en dessous
    -Puis Colonne de largeur variable

    Après avoir essayé des milliers de combinaison , j'ai finalement décidé de posé la question !!!

    Merci ...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    la combinaison gagnante est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
    <title>test</title>
     
    	<style type="text/css">
    html, body {
    	overflow:auto;
    	width:100%; height:100%;
    	margin:0; padding:0;
    }
    * {
    	margin:0; padding:0;
    }
    /* BANDEAU FIXE */
    #headerfixe  {
    	overflow:hidden;
    	position:fixed;
    	z-index:10;
    	width:800px; height:150px;
    	top:0;  			/* décalage vertical : 0 */
    	left:50%; margin-left:-400px; 	/* décalage horizontal : -(800/2) */
    	background-color:green; 	/* test */
    }
    /* MENU FIXE */
    #menufixe {
    	overflow:hidden;
    	position:fixed;
    	width:200px; height:100%;
    	z-index:10;
    	top:150px; 			/* décalage vertical : 150(header) */
    	left:50%; margin-left:-400px; 	/* décalage horizontal : -(800/2) */
    	background-color:red;	 	/* test */
    }
    /* CONTENU scrollable */
    #contenuscroll {
    	position:absolute;
    	width:600px; height:auto;
    	top:0; padding-top:150px; 	/* décalage vertical : 0 (on passe SOUS le header), et on décale le texte de 150px */
    	left:50%; margin-left:-200px;	/* décalage horizontal : -(800/2)+200(menu) */
    	background-color:yellow; 	/* test */
    }
    #contenu {
    	padding:20px;
    }
    	</style>
     
    </head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <body>
     
    <div id="headerfixe">
    	.... test header bandeau fixe ....
    </div>
     
    <div id="menufixe">
    	.... menu ....
    </div>
     
    <div id="contenuscroll">
    <div id="contenu">
    	.... contenu ....
    </div>
    </div>
     
    </body>
    </html>
    ps : j'ai 150px de haut pour le bandeau (à adapter, bien sûr)
    Testé : IE8, Firefox, Safari, Chrome, Opera.
    Dernière modification par Invité ; 05/09/2011 à 12h48.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci Jreaux62

    C'est un peu tordu.. ça ma pris quelque minutes avant de comprendre le principe d'une marge négative mais ça plein de bon sens...

    Le seul petit hic, et la je fais un peu mon difficile , lorsque je diminue la fenêtre en largeur, tout reste centré comme on le voulait, mais on perd la visibilité de chaque coté et l'ascenseur horizontal ne permet que de voir la partie droite du contenu. On perd alors en premier le menu, puis si on diminue encore, la partie gauche du contenu.

    Y a-t-il moyen de contourné ça ??

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par buldeo Voir le message
    lorsque je diminue la fenêtre en largeur, tout reste centré comme on le voulait
    Ca, Ok.
    mais on perd la visibilité de chaque coté et l'ascenseur horizontal ne permet que de voir la partie droite du contenu. On perd alors en premier le menu, puis si on diminue encore, la partie gauche du contenu.
    Ca, je ne vois pas du tout.

    [Edit] Ah si, je vois ce que tu veux dire : quand la fenêtre fait moins de 800px de large.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    C'est très gentil de te posé sur mon problème !!!

    En effet, c'est lorsque la fenêtre descend sous les 800px ...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Oui. Et tu voudrais que le scroll horizontal puisse se faire sur la totalité du site (menu et header compris)

    Cela dit, "Le positionnement absolu « retire » totalement du flux le contenu concerné".

    Difficile de dire à une div : tu te mets "absolue" en vertical, mais "relative" en horizontal...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2010
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Autre petit hic que j'ai trouvé :

    J'ai ajouté bottom:0; dans #contenuscroll afin que la couleur du background descend jusqu'en bas.
    Mais lorsque je diminue la fenetre en hauteur suffisament pour cache une partie du texte du contenu, l'ascenseur verticale apparaît, et si je bouge l'ascenseur pour voir mon texte, la couleur du background monte avec le texte et le nouveau texte qui vient du bas s'affiche sur le background défini dans body.


    J'ai réussi à résoudre ce problème en enlevant overflow:auto; dans la section body et en ajoutant overflow:auto; dans la section #contenu-scroll. Ce qui donne comme effet que l'ascenseur apparaît maintenant juste pour la section contenu et non pour toute la page.

    J'ai aussi changé top:0; padding-top:150px; pour top:150; dans la section #contenu-scroll sinon l'ascenseur commencait en haut de la page, sous le bandeau.

  8. #8
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    Hello,

    Pour ton problème du contenu qui disparait sur petit écran, à cause des marges négatives, tu peux ajouter, en principe, un min-width de 800px sur ton body pour l'éviter.

    Une autre approche, pour éviter le problème, serait de passer par un centrage traditionnel avec un div englobant de 800px en margin:0 auto et placer tes éléments en fixed à l'intérieur. De cette manière, en l'absence des propriétés left et right, leur positionnement horizontal de fera en fonction du flux normal, et il seront donc à la place souhaitée (sauf en cas de text-align center sur IE7- , sauf erreur).

Discussions similaires

  1. Effet de transparence avec CSS
    Par casawi dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 22/05/2009, 15h49
  2. [Article] Effet d'accordéon avec CSS et JavaScript
    Par RideKick dans le forum jQuery
    Réponses: 8
    Dernier message: 26/03/2009, 14h43
  3. frame avec Css
    Par pouss dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 13/07/2006, 14h31
  4. [XHTML][CSS] simuler des frames avec des div
    Par piwai dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 09/11/2005, 14h26
  5. ouvrir 2 frames avec un lien
    Par Slash dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 07/03/2003, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo