最赞回答 / P妞酱酱 <...图片...>(1)最里层的div是普通元素,所以其margin的百分比是相对于其容器.box的宽度来计算的;(2)最里层的div是空元素,所以本身不占据空间;(3).box设置overflow:hidden;触发BFC,它会重新计算.box整个盒子的大小(占据尺寸),使得被触发BFC的元素不会影响到外面的元素,所以上下左右四个margin: 50%;不会出现在.box外面;(4)为什么2:1?因为垂直方向上margin重叠,所以高度上只有一个margin:50%;