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 :

Avoir deux <div> cote à cote de même hauteur [CSS 3]


Sujet :

Dimensionnement en CSS

  1. #1
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut Avoir deux <div> cote à cote de même hauteur
    Bonjour,

    J'ai une page web qui se divise en 2 colonne et utilise quelques classe bootstrap:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div class="row">
    	<div class="span6">
    		<div class="well">
    			<p>aaaa</p>
    		</div>
    	</div>
    	<div class="span6">
    		<div class="well">
    			<p>bbb</p>
    			<p>ccc</p>
    		</div>
    	</div>
    </div>

    La class 'span6' à l'intérieur d'une classe 'row' me permet d'avoir 2 colonnes dans de jolis cadres 'well'. Cependant, le 2nd cadre possède plus de contenu et est donc plus haut que le 1er.

    Comment faire en sorte que 2 deux cadres aient la même hauteur sans donner une valeur fixe ?

    merci

  2. #2
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Hello,

    Si j'ai bien compris ce que tu demandes n'est pas possible.
    Si tu ne précises pas de hauteur elle va s'adapter au contenu automatiquement. Donc si tu as plus de contenu d'un côté, la hauteur sera forcément plus importante.
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Si t'es pas à cheval sur la compatibilité (I8+), tu peux faire un display: table sur la div avec la class "row" et des display: table-cell sur les class "span6".
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  4. #4
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Merci Torgar je vais essayer ta solution.

    Je pensais que définir une hauteur de '100%' (mais je ne sais pas ou ni comment) permettrait à la div la plus petite de remplir l'espace de la div row qui elle dépend de la div la plus haute. C'est pour ça que je pensais que c'était possible simplement.

  5. #5
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Citation Envoyé par Torgar Voir le message
    Si t'es pas à cheval sur la compatibilité (I8+), tu peux faire un display: table sur la div avec la class "row" et des display: table-cell sur les class "span6".
    Celà ne change rien . J'ai testé sous chrome.

  6. #6
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Ceci fonctionne sous Chrome et Firefox :

    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
    <div class="row" style="display: table; border: 1px solid black;">
    	<div class="span6" style="display: table-cell; border: 1px solid black;">
    		<div class="well">
    			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    		</div>
    	</div>
    	<div class="span6" style="display: table-cell; border: 1px solid black;">
    		<div class="well">
    			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    			<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    		</div>
    	</div>
    </div>
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  7. #7
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    oui, merci, je me rend compte que ça fonctionne, mais c la class 'well' de bootstrap qui ne rempli pas la cellule alors...

  8. #8
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Si j'affecte des dimensions height et width à la balise div.well avec l'unité px, le cadre du well est bien redimensionné. Si je mets en % ça ne fait rien. Donc, je ne peut pas mettre '100%' en hauteur et largeur.

  9. #9
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    La valeur 100% signifie que ton élément prend 100% de son conteneur pas de son contenu
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  10. #10
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Je suis passé par une fonction javascript (avec jquery) du coup. Ca fonctionne nickel

    Code javascript : 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
    function setNewsHeight(){
    var i = 0;
    var prevDiv = null;
    $( '#newsDivId div.well' ).each(function(){
    	if(i % 2 == 1){
    		var h1 = prevDiv.height();
    		var h2 = $(this).height();
    		if(h1 > h2){
    			$(this).height(h1);
    		}
    		else{
    			prevDiv.height(h2);
    		}
    	}
    	prevDiv = $(this);
    	i++;
    });
    }

  11. #11
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    Je ne comprend pas, ma fonction marche bien sous IE et FF, mais pas sous chrome. La hauteur retournée des div est plus petite et lorsque je force l'attribut height sur la plus petite des deux div adjacente, elle ne se met pas à la taille de l'autre.

    Bref, div.height() ne me retourne pas la vrai hauteur de la div...

  12. #12
    Membre Expert
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Par défaut
    J'ai changé le moment d'appel de ma méthode :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $(document).ready(function() {
    	setNewsHeight();
    });

    est devenu :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $(window).load(function() {
    	setNewsHeight();
    });

    Maintenant j'ai les bonnes hauteurs.

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

Discussions similaires

  1. Mettre 2 div de 100% cote à cote
    Par CedriZero dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 22/12/2012, 09h27
  2. Deux div cote à cote dans une div
    Par nic2t dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 13/11/2009, 20h34
  3. Réponses: 2
    Dernier message: 10/04/2009, 07h03
  4. [FPDF] Générer deux pages cote à cote
    Par jcachico dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/04/2007, 11h09
  5. Deux div cote à cote ?
    Par J0r_x dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 07/02/2007, 10h10

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