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 :

Centrage sur pages peu larges


Sujet :

Centrer un élément en CSS

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut Centrage sur pages peu larges
    Bonjour,
    je dois créer une page xhtml/css à partir d'une image (donc dimensions fixes), que j'aimerais centrer dans la page, pour cela j'utilise ce code :
    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
    #page
    {
      top: 5px;
      width: 838px;
      height: 896px;
      margin: auto;
      background: url("images/background.jpg") no-repeat;
    }
     
    #div-topall
    {
      border: 1px solid red;
      position: absolute;
      top: 150px;
      left : 50%;
      margin-left: -410px;
      width: 816px;
      height: 138px;
      overflow: auto;
    }
     
    #div-topleft
    {
      border: 1px solid red;
      position: absolute;
      top: 150px;
      left : 50%;
      margin-left: -410px;
      width: 480px;
      height: 138px;
      overflow: auto;
    }
     
    #div-topright
    {
      border: 1px solid blue;
      position: absolute;
      top: 150px;
      left : 50%;
      margin-left: 74px;
      width: 330px;
      height: 138px;
      overflow: auto;
    }
    J'ai donc mon image centrée et mes divs où insérer le contenu parfaitement placés, mais mon problème intervient lorsque la largeur de l'écran est inférieure à celle de l'image : utilisant le pourcentage pour positionner mes divs, je me retrouve à avoir le "100%" de ma page inférieur à la largeur de mon image, d'où décalage des divs.

    J'aimerais donc savoir s'il existe une autre solution, sachant que je suis de toute façon contraint d'utiliser un positionnement absolu pour faire correspondre mes blocs de contenu avec le fond de l'image.

    Merci d'avance.

  2. #2
    Membre émérite Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Points : 2 444
    Points
    2 444
    Par défaut
    Bonjour,
    tout d'abord le top: 5px; de #page ne sera pas appliqué puisque ton bloc n'est pas positionné (absolute, fixed ou relative).
    Pour quoi mettre des overflow auto à tout tes div?
    Le positionnement absolue est le dernier choix à faire puisqu'il sort tout du flux normal et entraine d'autre problèmes au niveau du texte...

    Tu aurais un exemple en ligne ou en image?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    Le top pour le div de page c'est un résidu de test, aucune importance.
    Les overflow c'est pour ne pas que le contenu dépasse du cadre (je dois respecter l'image de fond), là encore aucune importance vis-à-vis de mon problème.

    Je sais que le positionnement absolu n'est pas évident à manipuler mais je n'ai pas le choix, comme je l'ai indiqué dans mon post mes divs doivent se positionner suivant l'image de fond.

    Désolé je n'ai pas d'exemple en ligne, je teste en local là.

    Enfin au final ma seule question c'est de savoir comment centrer un div sans utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    left: 50%;
    margin-left: ...;
    Si j'arrive à faire ça je n'aurai plus de problème.

  4. #4
    Membre émérite Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Points : 2 444
    Points
    2 444
    Par défaut
    A priori, pas de solution à ton problème si tu veux conserver le positionnement absolue: soit tu centres via des marge latéral auto (margin: 0 auto) des blocs en flux normal (position static ou relative) soit
    tu utilises ta méthode qui est problématique si tu cibles aussi du 800X600 mais aussi en cas de diminution du viewport (zone d'affichage).

    Le mieux serait que tu fournisses au minimum la totalité du code HTML et CSS
    et que tu expliques ce que tu veux obtenir ;-)

  5. #5
    En attente de confirmation mail
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bonjour Palca, je me retrouve un peu dans le même cas que toi :
    j'ai des divs a position : absolute pour permettre une superposition et j'aimerais centrer le tout dans ma page.
    J'étais effectivement parti sur la même méthode que toi, mais lorsque l'on réduit le viewport toutes les parties de gauche disparaissent sans pouvoir les afficher.
    A droite on a bien par contre le scrollbar qui permet de récupérer le reste.
    Voilà si tu trouves une solution je suis preneur. Si j'en trouves une je te dirais ça.

  6. #6
    En attente de confirmation mail
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2007
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Voilà si tu cherches toujours j'ai trouvé une solution correcte :
    Tu met tous tes divs à position absolute dans un div "conteneur" et comme attributs tu lui colle :

    position : relative;
    width : XXXpx;
    margin : 0 auto;

    Le seul inconvénient étant d'avoir la taille de tes divs pour remplir le width mais visiblement tu travaille en tailles fixées.
    En espérant que ça t'aide.

Discussions similaires

  1. [WD-2000] Centrage affichage page sur moniteur 24 pouces
    Par slava dans le forum Word
    Réponses: 0
    Dernier message: 28/07/2009, 20h54
  2. centrage d'une page trop large
    Par bibile dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/12/2005, 01h13
  3. Erreur Pilote ODBC sur pages ASP
    Par zouritte dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2004, 13h42
  4. [CR] entête et pied sur page 1/B de matrice
    Par chloe.j3 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 04/09/2002, 12h07

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