CSS子元素设置margin父元素跟着移动

2019-08-16  本文已影响0人  九瀺

.main {

            width: 600px;

            height: 400px;

            background: #000;

        }

.container {

            width: 200px;

            height: 200px;

            background: #f00;

            margin: 50px auto;

        }

原因:

边距重叠:一个盒子和其子孙的边距重叠。根据规范,一个盒子如果没有上补白上边框,那么它的上边距应该和其文档流中的第一个孩子元素的上边距重叠。

普通文档流盒子间,只要垂直外边距直接接触就会发生合并,合并后外边距视觉高度取两个发生合并外边距中较大者。发生这一现象的有三种情况:相邻兄弟块元素间、父元素及其首子元素和末子元素间(没有内边距或边框把外边距分隔开)、空块级元素自身的合并。

解决办法:

1.为父盒子设置padding

2.为父盒子设置border

3.为父盒子设置 overflow:hidden

4.为父元素设置绝对定位(position:absolute)或者浮动(不推荐 或者给子元素设置定位或者浮动 -----因为会跳出文档流

上一篇 下一篇

猜你喜欢

热点阅读