#浮动定位BFC边距合并

  1. 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响?
    能让元素脱离文档流,进行上下左右的移动和排列。
    对于父容器会忽视浮动元素,按着自己的样式进行设置。
    对于其他浮动元素,按着float的方式进行排列
    对于普通元素,忽视浮动元素,进行排列
    对于文字,会认识浮动元素,然后围绕其排列

  2. 清除浮动指什么? 如何清除浮动? 两种以上方法
    2.1 让文本,行框不再围绕浮动元素,让浮动元素不再重叠。
    2.2 1.清除浮动的方式:添加空元素,样式为clear:both;来撑开父容器;
    2.2 2.使用伪类>.clear:after{content="";clear:both;display:block;};
    2.2 3.让父容器也float起来;
    2.2 4.或让父容器形成BFC(block format Content)(因为其的特性是不会重叠浮动元素)

  3. 有几种定位方式,分别是如何实现定位的,参考点是什么,使用场景是什么?
    三种定位方式:普通流;相对定位;绝对定位
    普通流:static;按照普通文档流进行定位,块级元素从上至下排列,行内元素从左往右排列,不需要考虑使用相对、绝对定位的时候
    相对定位:relative;相对于网页中本来占据的位子进行定位的,不过他们在文档流中的位子不发生变化,就是其的表现形式进行了改变。
    绝对定位:absolute,fixed;脱离文档流,相对一最近的(非static)的祖先元素进行定位。若没有祖先元素,则相对于html进行定位,你想让一个元素的位子固定的时候进行使用。fixed是固定定位,是相对于浏览器窗口进行决定的定位。

  4. z-index 有什么作用? 如何使用?
    能让元素形成堆叠展示。元素进行相对定位和绝对定位时,进行使用。>position:absolute;z-index:number;
    或者 position:relative ;z-index:number;position:fixed;z-index:number;position:sticky;z-index:number;

  5. position:relative和负margin都可以使元素位置发生偏移?二者有什么区别
    不都是,position:relative是元素位置不发生改变,它的表现形式发生偏移。而负margin是位置发生改变,则表现形式也随之改变。

  6. BFC 是什么?如何生成 BFC?BFC 有什么作用?举例说明
    BFC:block format content,块级格式化文本。是盒子的另一种运行规则。四种方式:1.display:inline-block、table-cell、table-caption; 2.float 3.position:absolute、fixed;4.overflow:auto、hidden、scroll;
    作用:清除浮动,阻止外边距合并;BFC容器中的元素不会重叠浮动元素;同时可以包含浮动元素。

  7. 在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例
    当块状元素设置margin数值时会产生外边距合并。三种情况,相邻元素比大小,谁大用谁;父子元素看谁的margin大就用谁;空元素,其就只有margin-top和margin-bottom时,谁大用谁,一样大用一个
    **当两个垂直外边距相遇时。他们的外边距就会合并,其的高度就是其中较大的那个外边距。同时若是外边距为负值时,则合并后的外边距为最大正的外边距加上负的外边距的值(注意:外边距的绝对值为最大)。
    ** 三种情况:一、相邻的兄弟元素
    正:
    ![WOXPR5{]7NTAQPIN{83ZI12.png](http://upload-images.jianshu.io/upload_images/4858350-d1e0b304b999657d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    负:

    #浮动定位BFC边距合并_第1张图片
    }8@6E3SCTV%5ULNIC11X7CJ.png

二、块级父元素与其第一个/最后一个子元素(其中没有border,padding,);
正:


#浮动定位BFC边距合并_第2张图片
EW(UA)`WM34D__7)$~}U~LU.png

负:

KC(HIH776N$E6XHRJ{OM8$W.png

三、空元素(没有border,padding,inline-content,height,)也会上下边距合并。
使用浮动和绝对定位可以不让相邻元素外边距合并。或者形成BFC;
demo http://js.jirengu.com/woqa/3/edit

案例:

     
    

在这个案例中,.son是.f的子元素,是一个父子的。同时我设置的margin值是不一样的。按照道理,red和green不会上下重叠在一起的,但是由于父子外边距的合并,让red的外边距变成使用了margin=20的效果了

demo

  1. http://js.jirengu.com/hoturunaki/6/edit
  2. http://js.jirengu.com/dixep/12/edit
  3. http://js.jirengu.com/tepe/6/edit
  4. http://js.jirengu.com/goni/4/edit
    **严禁转载,违者必究!

你可能感兴趣的:(#浮动定位BFC边距合并)