Vous êtes en train de voir la marge supérieure de la #inner
élément d'effondrement dans le bord supérieur de l' #outer
élément, ne laissant que l' #outer
de la marge intacte (mais ce n'est pas montré dans les images). Les bords supérieurs des deux boîtes sont alignés les uns contre les autres à cause de leurs marges sont égales.
Voici les points importants à partir du W3C spec:
8.3.1 l'Effondrement des marges
Dans le CSS, la salle de marges de deux boîtes ou plus (ce qui pourrait ou ne pourrait pas être frères et sœurs) peuvent se combiner pour former une seule marge. Des marges de combiner cette façon sont dit de s'effondrer, et la marge combinée est appelé un s'est effondré de la marge.
Attenant à la verticale marges s'effondrer [...]
Deux marges sont adjacents si et seulement si:
- les deux appartiennent à l'écoulement au niveau du bloc boîtes de participer dans le même bloc de mise en forme de contexte
- pas de ligne de boîtes, pas de jeu, pas de rembourrage et aucune frontière ne les séparer
- les deux appartiennent à la verticale-case adjacente bords, c'est à dire la forme de l'une des paires suivantes:
- marge supérieure de la boîte et de la marge supérieure de son premier flux de l'enfant
La raison pour laquelle l'une des méthodes suivantes empêche l'effondrement de la marge:
C'est parce que:
- Les marges entre une flottait boîte et toute autre zone ne s'effondre pas (pas même entre le flotteur et son débit d'enfants).
- Les marges des éléments qui établissent de nouveaux bloc de mise en forme des contextes (comme les chars et les éléments avec 'débordement' autre qu 'visible') de ne pas s'effondrer avec leur écoulement des enfants.
- Les marges de inline-block boîtes de ne pas s'effondrer (même pas avec leur débit d'enfants).
Les marges gauche et droite se comporter comme vous le souhaitez parce que:
Marges horizontales de ne jamais s'effondrer.