Tableau responsive 4 colonnes
Résolu/Fermé
rem_s
Messages postés
3
Date d'inscription
lundi 30 mars 2015
Statut
Membre
Dernière intervention
30 mars 2015
-
Modifié par jordane45 le 30/03/2015 à 13:51
rem_s Messages postés 3 Date d'inscription lundi 30 mars 2015 Statut Membre Dernière intervention 30 mars 2015 - 30 mars 2015 à 16:51
rem_s Messages postés 3 Date d'inscription lundi 30 mars 2015 Statut Membre Dernière intervention 30 mars 2015 - 30 mars 2015 à 16:51
A voir également:
- Css 2 colonnes responsive
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Tableau de combinaison loto 5/90 - Forum Excel
3 réponses
jordane45
Messages postés
38284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 novembre 2024
4 697
30 mars 2015 à 13:51
30 mars 2015 à 13:51
Bonjour,
De mon point de vue... un TABLEAU (html) contient des LIGNES avec des cellules dedans (ce qui correspond à tes colonnes....) .. il n'est pas possible de modifier ta TR pour en faire 2 en fonction de la taille de la fenêtre ( enfin si .. c'est possible ...mais compliqué pour pas grand chose...)
L'idéal je pense, serait plutôt de remplacer ton tableau par des DIV ...(ou du moins tes TD (en faisant une grande cellule dans laquelle tu mettrais tes div)
ainsi ... en fonction de la taille de ton écran.. tu peux définir des largeurs à tes div et (en jouant avec le display (blocks .. inline...) les positionner côte à côté ou en dessous selon tes besoins...
De mon point de vue... un TABLEAU (html) contient des LIGNES avec des cellules dedans (ce qui correspond à tes colonnes....) .. il n'est pas possible de modifier ta TR pour en faire 2 en fonction de la taille de la fenêtre ( enfin si .. c'est possible ...mais compliqué pour pas grand chose...)
L'idéal je pense, serait plutôt de remplacer ton tableau par des DIV ...(ou du moins tes TD (en faisant une grande cellule dans laquelle tu mettrais tes div)
ainsi ... en fonction de la taille de ton écran.. tu peux définir des largeurs à tes div et (en jouant avec le display (blocks .. inline...) les positionner côte à côté ou en dessous selon tes besoins...
animostab
Messages postés
2829
Date d'inscription
jeudi 10 mars 2005
Statut
Membre
Dernière intervention
11 novembre 2019
737
Modifié par animostab le 30/03/2015 à 15:32
Modifié par animostab le 30/03/2015 à 15:32
Bonjour
comme tes données n'ont pas de relations entre elle ce ne sont pas des données tabulaires
il faut donc utiliser des div avec display: inline-block
tu mets ces div dans une div parent
ensuite suivant les media-query tu mets des width en % et des max-width et ou min-width en px pour .donnees
enfin pense que tu si a un (min-width: 1024px) le suivant doit être (max-width: 1023px)
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
comme tes données n'ont pas de relations entre elle ce ne sont pas des données tabulaires
il faut donc utiliser des div avec display: inline-block
tu mets ces div dans une div parent
<div id="parent"> <div class="donnees"></div> <div class="donnees"></div> <div class="donnees"></div> <div class="donnees"></div> etc .... </div>
#parent { font-size:0; /**pour éviter le withe-space**/ text-align:center; /**pour centrer les div donnees**/ } .donnees { display:inline-block; font-size: ce que tu veux; text-align:ce que tu veux; }
ensuite suivant les media-query tu mets des width en % et des max-width et ou min-width en px pour .donnees
enfin pense que tu si a un (min-width: 1024px) le suivant doit être (max-width: 1023px)
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
rem_s
Messages postés
3
Date d'inscription
lundi 30 mars 2015
Statut
Membre
Dernière intervention
30 mars 2015
30 mars 2015 à 16:26
30 mars 2015 à 16:26
Grand merci jordane45 et animostab pour vos réponses rapides.
Je m'entêtais bêtement à vouloir appliquer les principes d'un tableau de base alors qu'avec des div, c'est plus simple et plus clair. Je me suis donc tourné vers cette solution mais j'ai abandonné l'idée de mettre le tableau sur 2 colonnes / 6 rangées pour une résolution intermédiaire (je galère avec le positionnement des div...)
J'ai procédé comme suit :
- le html :
- le css :
Le tableau s'affiche correctement sur 4 colonnes / 3 rangées pour toute résolution supérieure à 750px, en dessous de 750px, chaque div (cellule de données) est l'une en dessous de l'autre. Ce qui me convient.
Le seul ic est que je n'arrive pas à coller un espacement de 5px entre chaque div horizontalement certainement dû au display: table-cell;
Je marque le sujet comme résolu, mais suis quand même preneur d'autres solutions ;)
Je m'entêtais bêtement à vouloir appliquer les principes d'un tableau de base alors qu'avec des div, c'est plus simple et plus clair. Je me suis donc tourné vers cette solution mais j'ai abandonné l'idée de mettre le tableau sur 2 colonnes / 6 rangées pour une résolution intermédiaire (je galère avec le positionnement des div...)
J'ai procédé comme suit :
- le html :
<div class="row"> <div class="col">données</div> <div class="col">données</div> <div class="col">données</div> <div class="col">données</div> </div> <div class="row"> <div class="col">données</div> <div class="col">données</div> <div class="col">données</div> <div class="col">données</div> </div> <div class="row"> <div class="col">données</div> <div class="col">données</div> <div class="col">données</div> <div class="col">données</div> </div>
- le css :
.row { width: 100%; display: table; table-layout: fixed; text-align: center; margin-bottom: 5px; } .col { display: table-cell; padding:0 10px; border: 2px solid #a1a1a1; border-radius: 25px; } @media (max-width: 750px) { .col { display: inline-block; margin-bottom:5px; width: 95% !important; padding:10px 10px 10px 10px; text-align: center; font-size:16px; border: 2px solid #a1a1a1; border-radius: 25px; } }
Le tableau s'affiche correctement sur 4 colonnes / 3 rangées pour toute résolution supérieure à 750px, en dessous de 750px, chaque div (cellule de données) est l'une en dessous de l'autre. Ce qui me convient.
Le seul ic est que je n'arrive pas à coller un espacement de 5px entre chaque div horizontalement certainement dû au display: table-cell;
Je marque le sujet comme résolu, mais suis quand même preneur d'autres solutions ;)
jordane45
Messages postés
38284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 novembre 2024
4 697
Modifié par jordane45 le 30/03/2015 à 16:30
Modifié par jordane45 le 30/03/2015 à 16:30
bonjour,
pour ton pb d'espacement tu dois pouvoir jouer avec la propriété margin.
Par exemple :
pour ton pb d'espacement tu dois pouvoir jouer avec la propriété margin.
Par exemple :
.col { display: table-cell; padding:0 10px; border: 2px solid #a1a1a1; border-radius: 25px; margin-bottom : 5px; }
rem_s
Messages postés
3
Date d'inscription
lundi 30 mars 2015
Statut
Membre
Dernière intervention
30 mars 2015
30 mars 2015 à 16:51
30 mars 2015 à 16:51
J'ai essayé avec margin-bottom mais ça ne marche pas avec display: table-cell;
Du coup, en ajoutant "border-spacing:5px;" à ".row", la disposition entre chaque div s'applique automatiquement. Je ne connaissais pas l'astuce et ça a l'air de faire le job.
Du coup, en ajoutant "border-spacing:5px;" à ".row", la disposition entre chaque div s'applique automatiquement. Je ne connaissais pas l'astuce et ça a l'air de faire le job.