


Marges et éléments parents : comprendre l'énigme du conteneur
Lorsqu'un élément HTML avec une valeur de marge spécifiée est niché dans un autre élément conteneur, on peut s'attendre à ce que l'élément parent envelopper systématiquement la marge. Cependant, cette attente n’est pas toujours satisfaite. Des comportements surprenants émergent, où certaines caractéristiques du conteneur parent, telles que les bordures, le positionnement ou les paramètres de débordement, déterminent si la marge est contenue ou non.
Ce comportement curieux a soulevé plusieurs questions :
- Pourquoi le comportement diffère-t-il en fonction des caractéristiques de l'élément parent ?
- Quels attributs spécifiques déclenchent le confinement des marges ?
- Est-ce que ce comportement est explicitement défini dans les spécifications CSS ?
Pour percer le mystère, plongeons dans les profondeurs du CSS et les subtilités de l'interaction des marges.
Déclencheurs de confinement des marges
Grâce à l'expérimentation, il a été observé que plusieurs propriétés CSS peuvent influencer le confinement des marges :
- bordure : solide
- position : absolue
- affichage : inline-block
- overflow: auto
Curieusement, ces déclencheurs ne sont pas directement liés aux propriétés de marge. Une bordure solide, par exemple, semble peu susceptible d'avoir un impact sur le confinement des marges.
L'énigme des spécifications CSS
En fouillant dans la page de spécifications du W3C pour les marges CSS, on s'attendrait à trouver une définition claire. explication de ce comportement déroutant. Cependant, à notre grande surprise, le cahier des charges ne fournit aucune définition explicite du comportement observé.
En creusant plus profondément, nous découvrons que le cahier des charges confond deux concepts :
- Marges libres : Marges qui s'étendent au-delà de l'élément contenant.
- Marges réduites : Marges qui se chevauchent ou interagissent.
Ce mélange déroutant crée une ambiguïté, laissant place à confusion.
La logique du confinement des marges
Pour comprendre la logique derrière le confinement des marges, nous devons consulter la section "Collapsing Margins" de la spécification CSS. Il indique que :
"If the top and bottom margins of a box are adjoining, then it is possible for margins to collapse through it."
Cela signifie que si les marges supérieure et inférieure d'un élément enfant se touchent ou se chevauchent, elles deviennent une seule marge. Le positionnement de l'élément dépend alors de sa relation avec les autres éléments dans la marge repliable :
- Si la marge de l'élément enfant s'effondre avec la marge supérieure de son parent, la bordure supérieure de l'enfant est alignée avec la bordure supérieure du parent.
- Sinon, la position de la bordure supérieure de l'élément enfant est calculée comme si il avait une bordure inférieure non nulle.
Essentiellement, le confinement de la marge n'est pas lié au comportement par défaut d'un "div régulier". Au lieu de cela, cela dépend de l'interaction des paramètres de marges, de bordures, de positionnement et de débordement.
Conclusion
Le mystère du confinement des marges a été résolu, révélant que le comportement apparemment incohérent est régi par le règles complexes de réduction des marges. L'absence de documentation claire de la spécification CSS a contribué à la confusion, nécessitant des tests et des expérimentations approfondis pour saisir pleinement les nuances de cet aspect complexe du CSS.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Il y a eu une série d'outils, d'articles et de ressources sur la couleur récemment. Veuillez me permettre de fermer quelques onglets en les rassemblant ici pour votre plaisir.

Robin a déjà couvert cela, mais j'ai entendu une certaine confusion au cours des dernières semaines et j'ai vu une autre personne prendre un coup de poing pour l'expliquer, et je voulais

J'adore la conception du site Sandwich. Parmi les nombreuses caractéristiques belles figurent ces titres avec des soulignements arc-en-ciel qui se déplacent lorsque vous faites défiler. Ce n'est pas

De nombreux conceptions de CV populaires tirent le meilleur parti de l'espace de page disponible en disant des sections en forme de grille. Utilisons la grille CSS pour créer une disposition qui

Les recharges de page sont une chose. Parfois, nous actualisons une page lorsque nous pensons que cela ne répond pas, ou croyons que un nouveau contenu est disponible. Parfois, nous sommes juste en colère contre

Il y a très peu de conseils sur la façon d'organiser des applications frontales dans le monde de la réaction. (Déplacez simplement les fichiers jusqu'à ce qu'il «se sent bien», LOL). La vérité

La plupart du temps, vous ne vous souciez pas vraiment de savoir si un utilisateur est activement engagé ou temporairement inactif sur votre application. Inactif, signifiant, peut-être qu'ils

Wufoo a toujours été génial avec les intégrations. Ils ont des intégrations avec des applications spécifiques, comme Campaign Monitor, MailChimp et Typekit, mais ils aussi


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP