28111 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

Je vous explique mon problème, j'ai besoin d'afficher dans un div, une ou plusieurs timeline (le nombre dépend de ce que je récupère en base de données), pour chaque timeline j'ai un nombre aléatoires de div représentant une fourchette de dates (qui dépend également des infos de la base de données).
Vous trouverez ci-joint un schéma du résultat attendu :

upload/1587113973-79528-schema.png

Mon problème se situe au niveau de l'overflow, en fait je voudrai que lorsque le nombre de div dates (en vert sur le schéma) dépasse la taille du bloc parent, elle ne revienne pas a la ligne mais que l'on puisse scroller horizontalement, j'ai donc mis un overflow-x: auto sur mon div parent (auto et pas scroll pour ne pas avoir une barre de scroll grisée quand la taille n’excède pas le div parent), mais cela ne fonctionne pas, mes div dates reviennent a la ligne au lieu de rester alignée et d'avoir une barre de scroll.

J'ai essayé de jouer sur les line-break de mes div timeline (en rouge sur le schéma) mais sans résultat, et j'avoue que ça dépasse un peu mes compétences en CSS, est-ce que quelqu'un pourrais m'orienter sur une piste pour réaliser cela ?

Merci d'avance
Administrateur
Hello,

Le comportement naturel d'éléments plus nombreux que la largeur disponible est d'abord de s'écouler à la ligne suivante, même en jouant sur la propriété overflow.

Comment as-tu procédé pour que tes timelines s'écoulent les unes à côté des autres ? (inline-block ?)
En choisissant le modèle Flexbox (display: flex sur le parent rouge), tu auras par défaut un comportement tel que tu le souhaites puisque la valeur de flex-wrap vaut no-wrap dans Flexbox et les enfants ne sont pas autorisés à passer à la ligne.
Il faudra sans doute également leur interdire de se rétrécir, via flex-shrink: 0; sur chacune des timeline.

Bonne chance !
Meilleure solution
Un GRAND merci a toi, display: flex et flex-shrink: 0 et le problème est résolu, j'aurais jamais trouvé tout seul ! Encore merci Smiley cligne