Comme vous pouvez le constater, la première image prend la position la plus à droite. De même, lorsque la ligne est rompue, la quatrième image est placée à droite. C’est la raison pour laquelle vous verrez rarement des personnes flotter une liste d’éléments de navigation à droite. Pour ce faire, vissez l'ordre et nécessiterait des modifications indésirables dans la hiérarchie HTML à résoudre.
Nettoyage des flotteurs
Les flotteurs sont pratiques pour accomplir de grands exploits de mise en page comme créer des colonnes de contenu. Cependant, une fois déclarés, ils ont un effet sur le reste du flux du document que vous pourriez ou non aimer! Par exemple, supposons que nous voulions ajouter un paragraphe après un bloc d’éléments de liste flottants à gauche, comme celui que nous avons eu ci-dessus.
Le résultat ne sera probablement pas ce que vous espériez:
La réponse ici est d'utiliser le clair propriété, ce qui fait en sorte qu'aucun élément flottant ne puisse apparaître sur un côté donné de l'élément auquel il est appliqué. Par exemple, supposons que nous ciblions le deuxième élément de liste de notre petite galerie et appliquions une valeur de ? clair: à gauche?.
Ce code indique au navigateur que le haut du deuxième élément de la liste doit se situer sous le bas de tous les éléments flottants à gauche qui le précèdent (dans ce cas, le premier élément de la liste). Si nous avions tous mis tous ces éléments à la droite, nous aurions dû utiliser ? clair: non? au lieu.
Notez qu'après cela, le reste des objets flottants garde son cap. C'est parce qu'ils sont toujours configurés pour flotter à gauche, la propriété clear n'annule pas cette opération. Cela signifie que notre problème avec le paragraphe n'est pas résolu en effaçant l'un des éléments de la liste.
Au lieu de cela, ce qui doit arriver est que l'élément de paragraphe, qui est un élément de niveau bloc qui n'a pas été flotté, doit être effacé. Cela garantira qu’il apparaît sous les éléments flottants plutôt qu’à côté d’eux.
Nous n’avions techniquement besoin que de laisser un vide ici, mais lorsqu'un développeur veut être sûr de supprimer tous les flottants, il est courant de voir le tous les deux valeur utilisée. Ce changement a bien réglé notre problème!
Float Quirks et Clear Fixes
Une action particulière se produit lorsqu'un élément donné ne contient que des éléments flottants: la hauteur de l'élément parent est réduite. Pour illustrer cela, supposons que nous voulions mettre une couleur de fond sur la liste non ordonnée que nous utilisons dans tous nos exemples. Si les éléments de la liste ne sont pas flottants, il suffit d'appliquer la couleur à l'arrière-plan à l'aide de CSS.
Comme vous pouvez le voir dans l'exemple ci-dessous, la zone qui définit la liste non ordonnée est grisée et les éléments de la liste sont empilés les uns sur les autres.
Cependant, à la seconde où nous lançons ces éléments de liste, UL ne contient que des éléments flottants et sa hauteur s'effondre, ce qui laisse un développeur débutant se demandant ce qui est arrivé à sa couleur d'arrière-plan.
Il y a plusieurs façons de résoudre ce problème. La solution la plus simple et la plus simple consiste simplement à appliquer une hauteur explicite à l’élément parent, qui correspond à la liste non ordonnée.
Comme vous pouvez le constater, cela nous a effectivement permis de compléter notre parcours. Cependant, il est rarement souhaitable de prendre cette décision simplement parce que cela est plus pratique à long terme si la hauteur est automatiquement calculée en fonction du contenu. Si nous ajoutons trois rangées d'images à notre liste maintenant, cette hauteur ne sera pas suffisante.
Clearfix à la rescousse
C’est là que le terme "solution claire"? également écrit? clearfix ,? entre en jeu. Clearfixes résout ce problème de hauteur qui s’effondre traditionnellement par l’utilisation du clair propriété.
Ce que les développeurs faisaient auparavant est de créer un élément vide (souvent un div) dans leur code HTML au même niveau que les éléments flottants, puis d’appliquer une classe de? Clearfix? à ce conteneur vide. De retour en CSS, vous ajouteriez ensuite les flottants sur le? Clearfix? propriété.
Cela corrige immédiatement le problème de hauteur réduite:
Compte tenu de ce que nous avons déjà appris, nous savons exactement pourquoi cette astuce a résolu notre problème. La taille s’est effondrée parce que le parent ne contenait que des enfants flottants. Maintenant, il a un enfant, même vide, qui n'est pas flottant, donc la hauteur automatique fonctionne à nouveau comme prévu.
Le problème avec cette méthode est que personne n'a aimé cet élément très laid dans le code HTML. Ce n'était tout simplement pas sémantique, ce qui signifie que cela n'aidait pas à communiquer la hiérarchie claire de la page.
La nouvelle solution sophistiquée à ce problème consiste à tirer parti de la débordement propriété, qui régit la fonctionnalité du contenu qui s'étend au-delà des limites de sa zone de contenu. Il s'avère que si vous définissez overflow sur caché ou auto sur l'élément parent, cela corrige la hauteur s'effondrer!
Il s’agit là de la solution la plus brève et la plus élégante pour résoudre le problème de la hauteur qui s’effondre et qui devrait être votre stratégie. Cela étant dit, il y aura des cas où vous souhaitez que le débordement d'un élément soit défini sur visible, que devriez-vous faire alors?
La solution consiste à utiliser Micro Clearfix Hack de Nick Gallagher, qui utilise du code CSS de génie pour résoudre ce problème. Tout d'abord, il utilise: before et: after pour ajouter du contenu que nous pouvons utiliser pour créer quelque chose dans le parent qui n'est pas flottant. Cependant, vous ne voulez pas vraiment de contenu ici, donc nous le laissons vide mais plaçons l'affichage sur table pour créer une cellule anonyme (vide et ne prend pas de place) et pour finalement utiliser notre vieil ami clear. Cela crée l'élément de niveau de bloc invisible dont nous avons besoin pour résoudre le problème de la réduction de hauteur sans marquage HTML supplémentaire. Les anciennes versions d'Internet Explorer nécessitent leur propre correctif, ce qui est également ajouté.
Conclusion
Dans cet article, nous avons passé en revue une tonne d'excellentes informations, à la fois basiques et complexes. Nous avons commencé par discuter de la nature des flottants et de leur fonctionnement au niveau de base, puis nous avons expliqué comment la définition d'un élément en tant que flottant affecte les boîtes de bordure des éléments concernés de sorte que vous puissiez déterminer correctement comment utiliser vos marges. vous le voulez.
Nous avons ensuite abordé les règles de base régissant la position d’un élément flottant et abouti à des conclusions intéressantes sur la façon dont les éléments flottants de hauteurs différentes seront positionnés et sur la manière dont les éléments flottants de droite apparaissent dans l’ordre inverse.
Enfin, nous avons clairement expliqué comment un parent ne contenant que des enfants flottants aurait une hauteur réduite et comment vous pouvez le résoudre en fonction de votre scénario particulier.
Si les flotteurs vous ont dérouté avant de lire cet article, rejoignez le club. Ils nous confondent tous au début. Si tout va bien, vous avez maintenant une connaissance exceptionnelle du fonctionnement des flottants et de la façon dont vous pouvez les utiliser pour réaliser la mise en page de votre choix. Laissez un commentaire ci-dessous et laissez-nous savoir si vous avez trouvé cette information utile.