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 :

Aligner divs de hauteur différente


Sujet :

Positionnement en CSS

  1. #1
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut Aligner divs de hauteur différente
    salut à tous,

    tout d'abord je voudrais préciser que j'y connais pas grand chose aux CSS.

    J'ai des données dynamiques que j'affiche à l'intérieur de div. La largeur des divs est fixe mais la hauteur varie en fonction du contenu.

    J'aimerais obtenir un alignement régulier (en tableau) de mes divs au lieu du patchwork suivant.


    Nom : divs.PNG
Affichages : 1021
Taille : 42,4 Ko

    Voilà mon code pour l'affichage


    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
    <Html>
        <tpl for=".">
            <div class="thumb-wrap" id="{ID}">
                <div class="matchTable" style="width:300px;">        
                    <div class="matchRow">
                        <div class="matchCell">INDEX</div>
                        <div class="matchCell">{INDEX}</div>
                    </div>
                    <div class="matchRow">
                        <div class="matchCell">Ligue</div>
                        <div class="matchCell">{[LeagueRenderer(values.LEAGUEID)]}</div>
                    </div>
                    <div class="matchRow">
                        <div class="matchCell">LOCAUX</div>
                        <div class="matchCell">{[TeamRenderer(values.HOMETEAMID)]}</div>
                    </div>
                    <div class="matchRow">
                        <div class="matchCell">VISITEURS</div>
                        <div class="matchCell">{[TeamRenderer(values.GUESTTEAMID)]}</div>
                    </div>
                    <div class="matchRow">
                        <div class="matchCell">DATE</div>
                        <div class="matchCell">{DATE:date('d M Y')} - {TIME:date('G:i')}</div>
                    </div>
                    <div class="matchRow">
                        <div class="matchCell">PLACE DE JEU</div>
                        <div class="matchCell">{[PlayGroundRenderer(values.PLAYGROUNDID)]}</div>
                    </div>                                                             
                </div>
                {[convocationsRenderer(values.CONVOCATION)]}
            </div>
        </tpl>                                                                                          
    </Html>

    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
    .matchTable {
        /*width:300px;*/
        display: table;
    }
     
     
    .matchRow {    
        width: 100%;
        display: table-row;
    }
     
    .matchCell {
        padding: 3px;
        margin: 3px;
        border-style: none none solid none;
        border-width: 1px;
        border-color: #C0C0C0;
        display: table-cell;
     
    }
     
    .matchTableCaption {
        margin-top: 5px;
        display: table-caption;
        text-align: center;
        font-weight: bold;
    }
    .match-view .x-panel-body {
        background: white;
        font: 11px Arial, Helvetica, sans-serif;
    }
     
    .match-view .thumb-wrap {
        float:left;
        margin: 4px;
        margin-right: 0;
        padding: 4px;
        border: 1px solid #999999;
    }
     
    .match-view .thumb-wrap span {  
        display: block;
        overflow: hidden;
        text-align: center;
        width: 86px; // for ie to ensure that the text is centered
    }
     
    .match-view .x-item-over{
        border: 1px solid #dddddd;
        background: #efefef url(../../Shared/images/row-over.gif) repeat-x left top;
        padding: 4px;
    }
     
    .match-view .x-item-selected{
        background: #eff5fb url(../../Shared/images/selected.gif) no-repeat right bottom;
        border: 1px solid #99bbe8;
        padding: 4px;
    }
    Est-ce que c'est possible de faire ça avec du CSS?

    je vous remercie d'avance
    il vaut mieux prendre son pied que de se prendre la tête!!

    http://bossun.noxblog.com

  2. #2
    Membre régulier
    Homme Profil pro
    Expert Technique Java
    Inscrit en
    Septembre 2012
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Expert Technique Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 117
    Points : 75
    Points
    75
    Par défaut
    Bonjour bossum,

    As-tu essayé de regarder du côté de min-height et max-height ?

    Cela te permettrait donc d'avoir des DIVs qui font à peu près tous la même taille ( sauf dans le cas où il y a plus d'informations à afficher comme ton exemple ci-dessus).

    Ensuite pour palier au problème de l'alignement Il faut que tu mettes absolument un max-width qui te permettra donc d'avoir une largeur de DIV identique à chaque fois.

    Ensuite pour ce qu'il s’agît de l'alignement verticale, malheureusement ( ou du moins à ma connaissance ) tu ne peux pas les aligner ( partis du principe que des DIVs n'auront jamais la même hauteur à chaque fois.

    Ce que tu peux néanmoins faire, c'est connaître la hauteur maximale que ta DIV peut avoir et fixer ton max-height à la hauteur maximale que tu auras défini.

    Cela te permettra d'avoir un alignement verticale et horizontale parfait, mais cependant tu auras tout de même des DIVs avec plus ou moins de chose à l'intérieur cela risque de faire drôle.

    A toi de voir

  3. #3
    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,

    As-tu testé un display:inline-block associé à un vertical-align:top au lieu du float:left ?
    Les bons réflexes:
    • avant de poser une question:
      règles | faq | tutoriels | recherche
    • clarté, politesse, vocabulaire et orthographe soignés = efficacité
    • remercier ceux qui ont pris le temps d'aider et si c'est le cas

  4. #4
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    Candygirl merci pour ton aide, tu m'as mis sur la bonne piste. j'ai tâtonné un peu et j'ai trouvé la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    .match-view .thumb-wrap {
        display:inline-block;
        vertical-align:top;
        margin: 4px;
        margin-right: 0;
        padding: 4px;
        border: 1px solid #999999;
    }
    il vaut mieux prendre son pied que de se prendre la tête!!

    http://bossun.noxblog.com

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

Discussions similaires

  1. Alignement DIV différent entre Firefox et Chrome
    Par bond70 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 16/06/2015, 18h55
  2. Liste horizontale de div de hauteurs différentes
    Par Link14 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 05/07/2012, 11h36
  3. Aligner deux div de hauteur différent en bas
    Par Colbix dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 28/05/2010, 14h28
  4. [XHTML] Aligner div
    Par Anduriel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 17
    Dernier message: 13/02/2006, 19h25
  5. [css]colonnes contiguës de hauteur différentes
    Par spirou dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 18/08/2005, 07h48

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