J'ai un conteneur flex avec des éléments à l'intérieur. Comment détecter l'événement de wrap flex ? Je souhaite appliquer un nouveau CSS aux éléments qui ont été enveloppés. Je suppose qu'il est impossible de détecter l'événement de wrap avec du pur CSS. Mais ce serait une fonctionnalité très puissante ! Je peux essayer de "capturer" cet événement de point de rupture par media query lorsque l'élément est enveloppé dans une nouvelle ligne/rangée. Mais c'est une approche terrible. Je peux essayer de le détecter par script, mais ce n'est pas non plus très bon.
Je suis très surpris, mais simplement $("#element").resize() ne fonctionne pas pour détecter les changements de hauteur ou de largeur du conteneur flex afin d'appliquer un CSS approprié aux éléments enfants. LOL.
J'ai trouvé que seul cet exemple de code jquery fonctionne jquery event listen on position changed
Mais c'est toujours terrible.
0 votes
Vous ne pouvez pas détecter l'enveloppe en CSS - que vous utilisiez
flexbox
oufloat
, vous feriez mieux avec lesrequêtes multimédias
...2 votes
Merci pour la réponse. Peut-être qu'il y a un moyen simple de le détecter par JS? Je pense qu'il est inutile de "capturer" le point de rupture/retournement flottant pour les éléments flexibles à travers une requête media.
1 votes
Qu'est-ce qui fait que les éléments se mettent en ligne - un redimensionnement de l'écran ? davantage d'éléments ajoutés ?
0 votes
Oui. Le redimensionnement de l'écran provoque des éléments à se réorganiser. Je veux positionner les éléments de manière appropriée, ajouter une marge/remplissage pour les aligner et faire d'autres choses après que chaque élément a été réorganisé. Dans l'ensemble, si je pouvais détecter le flex wrapping ce serait très utile! Il est très étrange qu'il soit impossible de détecter le point de rupture du flex wrapping.
0 votes
Qu'est-ce qui provoque l'habillage des éléments en premier lieu ? Ont-ils une
min-width
, ou le contenu les empêche-t-il de se rétrécir, les obligeant ainsi à être habillés ?0 votes
Le contenu les empêche de réduire donc ils se répartissent. Question simple. Nous avons trois éléments en ligne avec des largeurs différentes. Lorsque nous redimensionnons le conteneur, le dernier élément se répartit. Comment aligner le dernier élément à la fin d'une ligne ou l'aligner sur le deuxième élément ?
0 votes
Il s'agit du plus grand problème auquel je suis toujours confronté. Les requêtes multimédias sont très frustrantes, le flex est pratique pour envelopper simplement mais de nombreuses fois vous voulez changer l'alignement des éléments enveloppés :/ pas de vraie solution à ce problème pour le moment.
0 votes
Je te comprends fréro, bienvenue au CSS en 2k19. Flexbox a vraiment besoin d'un sélecteur pseudo
:wrapped
pour résoudre ce problème. Je pense que même css-grid ne résoudra pas ce problème mais pourrait réduire le nombre de requêtes média dans votre style CSS.0 votes
Pour le cas de l'ajout de marges, vous pourriez utiliser un élément "spacer" à la place. C'est moche mais ça marche. Le wrapping flex est une fonctionnalité qui rend flex meilleur que grid pour certains types de mises en page.