|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 664 ![]() |
Bonjour à tous
Voici le problème sur lequel je suis en train de m'arracher les cheveux : Je veux afficher des divs les uns à la suite des autres dans un autre div. Je les pose donc côte à côte et lorsque j'arrive à la largeur du div contenant, les divs que je rajoute "passent à la ligne". Je voudrais faire en sorte qu'ils restent plutôt sur une seule et unique ligne. Plutôt qu'un long discours, voici un code test qui décrit ma situation : Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Développeur .NET Inscription : avril 2009 Messages : 264 ![]() |
Et avec le <table> ? je ne connais pas la réponse en CSS mais quand je suis face à cette problématique j'utilise un tableau html
|
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 664 ![]() |
Isythiel : Ouais, tu as raison c'est pas une mauvaise idée!! J'essayerai de me pencher du côté de l'élément table dès que j'ai un moment et je vous dis ce que ça donne.
Merci |
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Dominique Première S Inscription : juillet 2010 Messages : 252 ![]() |
ouais mais avec un tableau, ça va être horriblement raide.
non, il faut mettre l'attribut float: left sur les div intérieurs. Ils vont ainsi "s'empiler" à la suite des autres, de gauche à droite. c'est ce qu'on utilise pour les menus horizontaux ah oui, aussi, désires-tu que la taille du div "père" s'adpate à la taille des div intérieurs ? |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Développeur .NET Inscription : avril 2009 Messages : 264 ![]() |
Qu'est-ce que tu veux dire par raide ? Tu peux adapter la taille des cellules du tableau selon le nombre de cellules en php ... et même en JS si besoin...
D'ailleurs si tu jettes un oeil à son code, et notamment au style de ses cellules, tu observeras qu'il a déjà tenté le float:left; ... La problématique est de faire tenir toutes les cellules sur une même ligne, quelque soit le nombre de cellules. Et donc d'adapter les cellules et non le div père. Donc à moins que tu n'aies la solution en CSS, le tableau HTML me semble une bonne alternative. |
|
|
00
|
|
|
#6 |
|
Membre confirmé
![]() Dominique Première S Inscription : juillet 2010 Messages : 252 ![]() |
oups pardon, je n'avais pas compris qu'il voulais justement empêcher le passage à la ligne ... par "raide", j'entendais que dans le cas où il voudrais rajouter une cellule quelque part, ça risque de tout décaler ...
mais effectivement, cela me paraît la meilleure solution ... à moins de régler la taille des div intérieur en pourcentage, par exemple 24% si il faut en faire tenir 4 ... mais ça demande de savoir d'avance le nombre de "cellules", ce qui n'est pas toujours le cas .. |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 664 ![]() |
Voila, comme le dit Isythiel, j'ai déjà essayé le float:left et la taille du div père n'est pas dépendante de la taille des divs intérieurs. En gros, je le laisse tel quel.
Merci tout de même Dominique Edit : le nombre de divs internes peut être assez grand. j'aurai donc un scroll horizontal dès que ça dépassera. 24% pour 4 divs ne me conviendra pas... |
|
|
00
|
|
|
#8 | |
|
Membre actif
![]() Sylvain ClaudelInscription : décembre 2008 Messages : 195 ![]() |
Citation:
|
|
|
00
|
|
|
#9 |
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 664 ![]() |
rivsc merci pour ta réponse.
Il y a des trucs à supprimer par rapport au code que j'ai mis + haut ? (parce que là, ça m'affiche n'importe quoi !! ).Et ce sont des propriétés valables avec la plupart des navigateurs ? |
|
|
00
|
|
|
#10 | ||
|
Membre actif
![]() Sylvain ClaudelInscription : décembre 2008 Messages : 195 ![]() |
Code :
|
||
|
00
|
|
|
#11 |
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 664 ![]() |
Non, le div contenant doit avoir une taille fixe (on pourrait lui mettre une largeur absolue d'ailleurs plutôt qu'un pourcentage).
Les divs qui sont à l’intérieur aussi, ont une largeur fixe. Pour faire clair : Disons que le div contenant a une largeur de 1000px. Chaque div à l’intérieur a une largeur de 200px. Quand on en a moins de 5, ils sont côte à côte et tout roule. Quand on en met plus de 5, il doit y avoir un scroll horizontal au niveau du div contenant et les tailles n'ont pas changé. |
|
|
00
|
|
|
#12 |
![]() ![]() |
Bonjour,
[Edit] Oups ! non... ps : enlève tes balises <center> et remplace-les par un style text-align:center; sur les div
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
|
|
00
|
|
|
#13 | ||
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 664 ![]() |
Bon, j'ai essayé la solution avec table
Code :
|
||
|
|
00
|
|
|
#14 | ||
![]() ![]() |
Re.
Je t'ai trouvé une solution : Code :
On les décale horizontalement de (10+150*$indice) px. ps : on peut aussi les espacer en mettant : (10+(150+10)*$indice) px (espacement 10px entre les divs)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||
|
|
00
|
|
|
#15 | ||
|
Membre habitué
![]() Inscription : juillet 2006 Messages : 664 ![]() |
Super merci jreaux62
![]() En fouillant sur le net, je vois que le souci revient souvent. J'ai à mon tour trouvé une solution. En fait, j'utilise l'élément table proposé plus haut par Isythiel. L'astuce est de mettre une image transparente dans chaque cellule. L'image a une largeur de la taille de la cellule et une hauteur de 1 px. Code :
|
||
|
|
00
|
|
|
#16 | ||
|
Membre actif
![]() Sylvain ClaudelInscription : décembre 2008 Messages : 195 ![]() |
J'avais mal compris ta demande. Je pense que ceci correspond mieux, tu peux réglé le width:Xpx; en php. J'ai rien trouvé de mieux (full html, css)
Code :
|
||
|
00
|
|
|
#17 | ||
![]() ![]() |
Re.
Bien que je pense (pour une fois !) que mon code est le plus "correct" (html+CSS), la version avec la <table> est très acceptable, considérant qu'on a ici des données tabulaires. Voici de quoi améliorer ton code : - code html plus "propre", - codes html et php séparés, - et surtout "image parasite" supprimée, par l'utilisation de min-width:130px; sur le td Code :
-> A TESTER sur IE <= 7 (min-width n'est peut-être pas bien supporté) Le souci est là. Il faudrait effectivement l'indiquer dynamiquement en PHP, en fonction du nombre de divs intérieurs. (sinon, la barre de scroll s'affiche pour les 5000px...)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément." Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique. Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
|
||
|
|
00
|
|
|
#18 | |
![]() ![]() Inscription : janvier 2011 Messages : 2 944 ![]() |
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com