html+css 知识点

一、怎么解决margin传递:

1.将子元素的margin换成padding;

2.给父元素添加overflow:hidden;

3.给父元素加上边框;

4.子元素设置浮动;

5:父元素设置浮动;

6:子元素设置绝对定位(子绝父相)

二、清除浮动的几种方法:

一个盒子没有高度,它的子元素全部浮动无法撑起自身,没有形成BFC。

浮动一定要封闭到一个盒子中,否则就会对后续元素产生影响。

1.让内部有浮动的父盒子形成BFC,给父盒子加overflow:hidden;关住浮动

2.给后面的父盒子设置clear:both;clear表示清除浮动对自己的影响,both表示左右浮动都清除。缺点margin-top会失效,因为前一个盒子是没高度的。

3.使用::after伪元素给父盒子添加最后一个子元素,并设置clear:both;记得转为块级元素。好处是margin-top不会失效。

4.两个父盒子之间增加一个div,并给其设置clear:both;隔墙,好处就是可以用自身高度充当上下的外边距。

三、形成BFC的几种办法:

1.float的值不是none;

2.position的值不是static或者relative;

3.display的值是inline-block、flex或者inline-flex;

4.overflow:hidden;

四、BFC的作用:

1.取消margin塌陷;(给上下两个元素的父元素形成bfc)

2.阻止元素被浮动元素覆盖;