浮动定位BFC边距合并
2017-03-04 本文已影响0人
mianmiani
浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响?
浮动元素脱离标准文档流,并且位于它本身容器的左或者右,其他标准文档流元素会覆盖他,但是元素中的文字会包裹这个浮动元素;
由于浮动元素脱离了标准文档流,他会使父元素塌陷没有高度;
若其他元素为浮动元素则按照先后顺序左浮动在左边排列,右浮动在右边排列,左右都有则从左右到中间依次排列。
若其他元素为普通元素,则会覆盖浮动元素,但元素中的文字会感知到浮动,所以会环绕浮动元素。
清除浮动指什么? 如何清除浮动? 两种以上方法
浮动会造成父元素塌陷,清除浮动就是要消除这种影响
方法:
最后一个浮动的元素后面增加一个空的div,div的属性为clear:both;
给最后一个元素加上after伪类,```:after:{
content:""
display:block;
clear:both;
}
让父元素形成BFC,例如
给父元素增加overflow:hidden;属性。
#有几种定位方式,分别是如何实现定位的,参考点是什么,使用场景是什么?
一共有四种:
1. static
使用正常的布局方式,属性top, right, bottom, left 和 z-index 无效。
2. relative
相对定位,元素本身不脱离标准文档流,元素本身所占位置不变的情况下改变内容的位置。
3. absolute
绝对定位,元素本身脱离标准文档流,定位的相对位置由最近的非static定位的祖先元素来偏移,并且绝对定位的元素magin属性不会发生边距合并。
4.fixed
固定定位,元素本身脱离标准文档流,定位相对于显示屏幕的位置,在页面发生滚动时元素位置不会发生改变。
使用场景:绝对定位一般和相对定位配合使用,来完成页面的布局,制作导航条的悬停弹出按钮等;固定定位可以用于固定导航条或者一些广告。
#z-index 有什么作用? 如何使用?
z-index值较大的元素会覆盖z-index值较小的元素,可以用于显示浮动的元素。
#position:relative和负margin都可以使元素位置发生偏移?二者有什么区别
相对定位会在元素本身位置留下一个占位空间,而负marign则是整个元素发生位移。
#BFC 是什么?如何生成 BFC?BFC 有什么作用?举例说明
BFC是块格式化上下文:非块级盒子的块级容器,它是块盒子的布局发生及浮动体彼此交互的区域。
生成BFC的方法有:
浮动、display:inline-block(内联块)|table-cell | table-caption 、绝对定位或固定定位的元素、overflow值不等于visible的元素。
BFC的作用1.可以清除浮动。2.防止垂直margin重叠。
#在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例
1. 同一个容器中上下排列的元素,排列在上的margin-bottom和排列在下的margin-top会合并,并且取较大的margin。
2. 父子元素同时存在margin-top/bottom时会合并,此时margin-top为父元素和第一个子元素margin-top较大者。
3. 当元素内容为空时,元素的上下margin会合并,并且多个空元素的margin会合并为较大者,当有负margin存在时,合并后的值是最大正margin加上最小负margin。
####不让相邻元素外边距合并的方法:
让元素浮动、绝对定位、给元素添加inline-block属性或者给父元素添加overflow不等于none的属性。
![边距合并范例](https://img.haomeiwen.com/i4988561/c2a1a19f2129697e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)