浮动定位BFC边距的合并

2017-11-14  本文已影响0人  熊蛋子17

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

  1. 浮动模型也是一种可视化格式模型,浮动的框可以左右移动(根据float属性值而定),直到它的外边缘碰到包含框或者另一个浮动元素的框的边缘。、
  2. 浮动元素不在文档的普通流中,文档的普通流中的元素表现的就像浮动元素不存在一样。
  3. 浮动元素后面的内联元素会向此浮动元素的外边距靠齐

对于文字的影响效果图

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

** 清除浮动指的是解决在子元素浮动的情况下父容器坍缩的问题**

  1. 如果我们想让父元素在视觉上包围浮动元素可以在父元素最后添加一个空div,<div style="clear:both;"></div>对它清理,然而这样会导致的后果就是创建了一个空的无意义的div标签。效果图如下图所示:

    效果图
  2. 使父容器生成BFC,因为BFC可以包含浮动,从而达到“清除浮动”效果。
    具体的实现过程主要有一下几种方式:

然而并不是各种情况都是不存在任何副作用的,经过前辈们的大量实践经验一般的出来的解决结论是副作用较少的是overflow: auto;& overflow: hidden;
下面是为清理浮动的代码方案 仅供参考:

/*方法1*/
  .clearfix{
      *zoom:1;
  }
  .clearfix:after{
      content: "";
      display: block;
      clear: both;
  }


  /*方法2*/
  .clearfix{
    *zoom:1;
  }
  .clearfix:after{
    content:"";
      display:table;
      clear:both;
  }

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

一般来CSS的定位方式主要有四种

需要注意的是注意只有position: relative; absolute; fixed;才能设置top left 等的值。

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

z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。如果为正数,则离用户更近,为负数则表示离用户更远。Z-index 仅能在定位元素上奏效。
定义z-index属性,值必须为整数或者是auto。

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

position:relative和负margin都可以使元素位置发生偏移,二者区别:

二者的区别是

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

BFC的全称是Block Format Content,中文译为块级格式化上下文。
其主要的特性有一下几点:


关于如何生成BFC


BFC的作用

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

当块处于同一个文档流同一个BFC中,两个元素才有可能发生垂直Margin的重叠,这个包括相邻元素,嵌套元素,只要他们之间没有阻挡(例如边框,非空内容,padding等)就会发生margin重叠。对于父子元素,容器没有padding和border内部的margin会导致外边距合并。

具体来说就是相邻元素box1和box2的垂直外边距合并,如下例,


效果图

合并规则


父子外边距的效果图如下图所示


初始效果图

解决外边距合并,让父容器设为BFC就可以了。给父容器加入overflow: auto;包裹h1,使得h1的margin内部生效,从而不会margin合并。这样子元素的margin就不会和父元素的margin发生重叠。如下例:

最终效果图

代码展示

代码1
代码2
代码3
代码4

上一篇 下一篇

猜你喜欢

热点阅读