已采纳回答 / m慕光
overflow:hidden;意思为当内容宽高大于父容器宽高,超出的部分就会被隐藏。本题中内容宽度为:(386.66+20)* 3 = 1220父容器宽度为:1200 < 1220 所以这里如果不加overflow:hidden;则父容器无法在一行中容纳所有的内容,最后一个div元素会换行显示;但是如果你加overflow:hidden;内容超过父容器的部分可以被隐藏,即可做到一行显示。这里不设置也没关系是因为有一句margin-right:-20px;
2016-10-30
最赞回答 / P妞酱酱
<...图片...>(1)最里层的div是普通元素,所以其margin的百分比是相对于其容器.box的宽度来计算的;(2)最里层的div是空元素,所以本身不占据空间;(3).box设置overflow:hidden;触发BFC,它会重新计算.box整个盒子的大小(占据尺寸),使得被触发BFC的元素不会影响到外面的元素,所以上下左右四个margin: 50%;不会出现在.box外面;(4)为什么2:1?因为垂直方向上margin重叠,所以高度上只有一个margin:50%;
2016-10-26