浮动定位BFC边距合并

2017-09-30  本文已影响0人  Lucien_d70a

1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响?

对父容器影响:

如果父元素里全部子元素都是浮动元素,那么父容器会塌陷(因为无法识别里面的元素)。

对其他浮动元素影响:

如果其它元素也设置浮动遇到它会停止,如果父容器宽度撑不起浮动元素,则最后的元素将会换到下一行,换到下一行遇到浮动元素可能会被卡住。

对普通元素影响:

普通元素会识别不了浮动元素,就会产生重叠,遮挡。

对文字有什么影响:

文字不同普通元素,会识别到浮动元素,所以就会被浮动元素隔开,在浮动元素周围围绕。

2.清除浮动指什么? 如何清除浮动? 两种以上方法

清除浮动的方式:

1.在你想不参与浮动的元素上设置clear:left/right/both;
2.在父元素的子元素最后添加一个空的div,并设置clear:both;
3.利用css
.clearfix{*zoom: 1;}
.clearfix:after{content:"";display:block;clear:both}

Paste_Image.png

然后把class名添加到要清楚浮动的父元素上。和第二部相似,只不过用css实现。
4.把父元素设置为BFC:

float: left | right;
overflow: hidden | auto | scroll;
display: table-cell | table-caption | inline-block;
position: absolute | fixed;

3.有几种定位方式,分别是如何实现定位的,参考点是什么,使用场景是什么?

4.z-index 有什么作用? 如何使用?

5.position:relative和负margin都可以使元素位置发生偏移?二者有什么区别

6.BFC 是什么?如何生成 BFC?BFC 有什么作用?举例说明

生成BFC:

float: left | right;
overflow: hidden | auto | scroll;
display: table-cell | table-caption | inline-block;
position: absolute | fixed;

BFC 有什么作用:
1.可以解决外边框margin重叠问题。
2.可以用来清除浮动,但是多多少少会有缺陷,所以要结合场景来使用。
举个例:

Paste_Image.png

你看h1怎么样都撑不开,明明都设置了margin,但只有左右生效。这时候就要让div这个父元素变成BFC,加一点限制。

Paste_Image.png

再来个例子:

Paste_Image.png

父元素的所有子元素都浮动了,父元素就塌陷了,变得无法识别自己的子元素。这时候把父元素变成BFC;

Paste_Image.png

成功了!!

7.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例

Paste_Image.png

解决办法:让两个元素在不同的BFC中;

Paste_Image.png

.如果两个margin都为负值:哪个值小,显示哪个值,然后从0位置,负向位移。

.如果正有负的时候:先取出负 margin 中绝对值中最大的,然后,和正 margin 值中最大的 margin 相加。

.所有在隔壁的margin都要一起参与运算,不能说分布进行。

上一篇 下一篇

猜你喜欢

热点阅读