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 :

Div imbriqués ayant la même largeur


Sujet :

Dimensionnement en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut Div imbriqués ayant la même largeur
    Bonjour à tous,

    J'ai un div qui contient tout le contenu de ma page. À l'intérieur de ce div, j'ai ajouté un autre div pour l'en-tête et un autre pour le contenu.

    Toutefois, lorsque la largeur du contenu dépasse la largeur de ma fenêtre, j'ai un problème :

    Style
    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
     :
    body 
    {
    	margin: 0px 0px 0px 0px;
    	padding: 0px 0px 0px 0px;
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	background-color :#ffffff;
    }
     
    div.pageAllContent
    {
    	width :100%;
    }
     
    div.pageAllContent div.pageHeader
    {
    	background-color :#000000;
    	border-bottom : solid 1px #000000;
    	height :70px;
    	width :100%;
    }
     
    div.pageAllContent div.pageMiddleContent
    {
    	width :100%;
    	padding :0px 10px 0px 10px;	
    }
    HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            <div class="pageAllContent">
                <div class="pageHeader">
     
                </div>
     
                <div class="pageMiddleContent">
                  <!-- Ici placer une table qui sera plus large que fenêtre -->
                </div>
            </div>
    Avec ce bout de code, le noir de mon header s'arrête avec la largeur de la fenêtre au lieu de s'arrêter avec la largeur de son contenu.

    J'ai essayé toute sorte de propriétés CSS (margin, overflow, etc...) mais je n'ai rien trouvé

    Merci pour votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Chef Gérant
    Inscrit en
    Octobre 2005
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef Gérant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2005
    Messages : 230
    Par défaut
    Bonjour,

    le width:100%; correspond a la largeur de ta fenêtre , a part IE6 , les autres navigateurs gardent cette largeur de fenetre comme référence.

    Pour que tes fonds s'étalent au dela du viewport (fenêtre) il faut leur donné un comportement de 'tableau' et modifier le contexte de formatage pour IE7 via les commentaires conditionnels.
    exemple :
    Code html : 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
    50
    51
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>HTML 4.01, buzz l'eclair</title>
    <style type='text/css'>
    div.pageAllContent
    {
     
    width :100%;
     
    display:table;
    }
     
    div.pageAllContent div.pageHeader
    {
    	background-color :#000000;
    	border-bottom : solid 1px #000000;
    	height :70px;
    	width :100%;color:white
    }
     
    div.pageAllContent div.pageMiddleContent
    {
    	width :100%;
    	padding :0px 10px 0px 10px;	
    }
    </style>
    <!--[if lte ie 7]>
    <style type='text/css'>
    div.pageAllContent
    {
    width:auto!important;/*ie7*/	
    width :100%;
    min-width:100%;
    display:inline;
    zoom:1;}
    </style>
    <![endif]-->
    </head>
    <body>
           <div class="pageAllContent">
                <div class="pageHeader">
                    ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
                </div>
     
                <div class="pageMiddleContent">
                  <!-- Ici placer une table qui sera plus large que fenêtre -->
                </div>
            </div>
    </body>
    </html>

    GC

  3. #3
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    Merci, j'avais déjà essayé la propriété CSS display :table. Cela règle le problème mais qu'à moitié.

    Testez ce bout de code et vous verrez que complètement à la droite de la fenêtre (lorsqu'on scroll), le noir ne s'étend pas jusqu'au BOUT. Il reste une dizaine de pixels vacante.

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>Test de DIVs imbriqués</title>
    <style type='text/css'>
    body 
    {
    	margin: 0px 0px 0px 0px;
    	padding: 0px 0px 0px 0px;
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	background-color :#ffffff;
    }
     
    div.pageAllContent
    {
        width :100%;
        display:table;
    }
     
    div.pageAllContent div.pageHeader
    {
    	background-color :#000000;
    	border-bottom : solid 1px #000000;
    	height :70px;
    	width :100%;
    	color :white;
    }
     
    div.pageAllContent div.pageMiddleContent
    {
    	width :100%;
    	padding :0px 10px 0px 10px;	
    	font-size :60px;
    }
    </style>
    <!--[if lte ie 7]>
    <style type='text/css'>
    div.pageAllContent
    {
    width:auto!important;/*ie7*/	
    width :100%;
    min-width:100%;
    display:inline;
    zoom:1;}
    </style>
    <![endif]-->
    </head>
    <body>
           <div class="pageAllContent">
                <div class="pageHeader">
                     Titre de la page                
                </div>
     
                <div class="pageMiddleContent">
                  ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
                </div>
            </div>
    </body>
    </html>

  4. #4
    Membre chevronné
    Profil pro
    Chef Gérant
    Inscrit en
    Octobre 2005
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef Gérant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2005
    Messages : 230
    Par défaut
    oki , et avec un reset a 0 des marges internes et externes sur html et body ?

    <edit> et j'oublié aussi le border-collapse:collapse; qui va probablement de pair avec le display:table;

    re edit . le fautif :
    width :100%;
    padding :0px 10px 0px 10px;

  5. #5
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    J'ai trouvé la solution

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>Test de divs imbriqués</title>
    <style type='text/css'>
    body 
    {
    	margin: 0px 0px 0px 0px;
    	padding: 0px 0px 0px 0px;
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	background-color :#ffffff;
    }
     
    div.pageAllContent
    {
        width :100%;
        display :table;
    }
     
    div.pageAllContent div.pageHeader
    {
    	background-color :#000000;
    	border-bottom : solid 1px #000000;
    	height :70px;
    	width :100%;
    	color :white;
    	display: table-row; /* CORRECTION */
    }
     
    div.pageAllContent div.pageMiddleContent
    {
    	width :100%;
    	padding :0px 10px 0px 10px;	
    	font-size :60px;
    	display: table-row; /* CORRECTION */
    }
    </style>
    <!--[if lte ie 7]>
    <style type='text/css'>
    div.pageAllContent
    {
    width:auto!important;/*ie7*/	
    width :100%;
    min-width:100%;
    display:inline;
    zoom:1;}
    </style>
    <![endif]-->
    </head>
    <body>
           <div class="pageAllContent">
                <div class="pageHeader">
                     Titre de la page                
                </div>
     
                <div class="pageMiddleContent">
                  ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
                </div>
            </div>
    </body>
    </html>
    Il fallait utiliser "display: table-row;" dans les div imbriqués au pageAllContent.

    Il est grand temps que je m'achète un livre sur le CSS. J'en fait pas assez souvent et je perd trop de temps lorsque je dois m'y remettre.

    Avez-vous un bon livre à me conseiller ? J'ai pensé à celui-ci http://www.apress.com/book/view/1590598040. Certes, il n'est pas récent, mais il n'est pas cher et j'aime bien cette série.

    À moins que vous ayez beaucoup mieux à me conseiller ? En fait, la seule chose qui me fait hésiter de ce livre, c'est le fait qu'il ne soit pas en couleur.

  6. #6
    Membre chevronné
    Profil pro
    Chef Gérant
    Inscrit en
    Octobre 2005
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef Gérant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2005
    Messages : 230
    Par défaut
    Table-row n'est peut-etre pas la meilleur solution.

    width:100% + les padding latéraux s'ajoute .
    Le width n'est pas franchement necessaire.

    Désolé , rien a te proposer ou a critiquer comme lecture , je n'en n'ai pas .

    D'autres ici sauront te conseiller.

    GC

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modifier plusieurs Div ayant la même class
    Par Seta-san dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/10/2010, 15h34
  2. Gérer un même évenement sur des div imbriqués.
    Par snake-09 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/02/2010, 16h36
  3. Centrer une page avec des DIV imbriqués
    Par emstar dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 25/04/2006, 18h42
  4. [XSLT] Encadrer des paragraphes ayant les mêmes balises
    Par billou13 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 21/10/2005, 10h18
  5. Beaucoup de div imbriqués => rendu très lent
    Par vivine10 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/10/2005, 17h00

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