一个正在奋斗中的IT民工

研究+交流+分享=提高

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
w3c:
If the top and bottom margins of a box are adjoining, then it is possible for margins to collapse through it. In this case, the position of the element depends on its relationship with the other elements whose margins are being collapsed.

Mozilla margin collapsing:

Summary

Top and bottom margins of blocks are sometimes combined (collapsed) into a single margin whose size is the largest of the margins combined into it, a behavior known as margin collapsing.

Margin collapsing occurs in three basic cases:

Adjacent siblings</dt>
The margins of adjacent siblings are collapsed (except when the later sibling needs to be cleared past floats). For example:
 <p>The bottom margin of this paragraph is collapsed...</p>
 <p>...with the top margin of this paragraph.<p>

</dd>

Parent and first/last child</dt>
If there is no border, padding, inline content, or clearance to separate the margin-top of a block with the margin-top of its first child block, or no border, padding, inline content, height, min-height, or max-height to separate the margin-bottom of a block with the margin-bottom of its last child, then those margins collapse. The collapsed margin ends up outside the parent. </dd>
Empty blocks</dt>
If there is no border, padding, inline content, height, or min-height to separate a block's margin-top from its margin-bottom, then its top and bottom margins collapse. </dd> </dt> More complex margin collapsing (of more than two margins) occurs when these cases are combined.

These rules apply even to margins that are zero, so the margin of a first/last child ends up outside its parent (according to the rules above) whether or not the parent's margin is zero.

When negative margins are involved, the size of the collapsed margin is the sum of the largest positive margin and the smallest (most negative) negative margin.

Margins of floating and absolutely positioned elements never collapse.


没有Mozilla的解释还真不知道W3C到底说的是哪种情况,致敬!

测试代码:
 1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2<html xmlns="http://www.w3.org/1999/xhtml">
 3<head>
 4<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 5<title>无标题文档</title>
 6</head>
 7
 8<body style="margin: 0 auto;">
 9<div style="margin: 10px 0;"></div>
10<p>测试</p>
11</body>
12</html>
posted on 2009-07-23 00:07  kidi  阅读(280)  评论(0编辑  收藏  举报