FE-study

CSS-浮动定位BFC边距合并

2017-09-12  本文已影响0人  饥人谷_bigJiao

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

特征

影响

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

清除浮动

如何清除浮动

  1. 利用clear属性清除浮动
<div style="border: solid 5px #0e0; width:300px;">
      <div style="height: 100px; width: 100px; background-color: Red;  float:left;">
      </div>
      <div style="height: 100px; width: 100px; background-color: Green;  float:left;">
      </div>
      <div style="height: 100px; width: 100px; background-color: Yellow;  float:left;">
      </div>
      <div style="clear:both;"></div>
  </div>

效果:

清除浮动1.png
  1. 利用BFC清理浮动
    • 利用BFC的第三条特性来“清浮动”,这里其实说清浮动已经不再合适,应该说包含浮动。也就是说只要父容器形成BFC就可以
    • 如何形成BFC
      • float为 left|right
      • overflow为 hidden|auto|scroll(即非visible)
      • display为 table-cell|table-caption|inline-block
      • position为 absolute|fixed
  2. 通用的清理浮动法案(after伪元素清除浮动 )
/*方法1*/
  .clearfix{
      *zoom:1;          /*针对ie 6 7,利用hasLayout属性 */
  }
  .clearfix:after{
      content:"";    
      display:block;
      clear:left;
  } 
  /*用after在浮动元素最后添加一个伪元素,再利用clear属性清除浮动,类似方法1,不需要添加无意义的html标签*/ 

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

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

六种定位方式

属性
inherit 规定应该从父元素继承 position 属性的值
static 默认值,没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)
relative 生成相对定位的元素,相对于元素本身正常位置进行定位,因此,left:20px 会向元素的 left 位置添加20px
absolute 生成绝对定位的元素,相对于static定位以外的第一个祖先元素(offset parent)(的内边框)进行定位,元素的位置通过 left, top, right 以及 bottom 属性进行规定.不设置top等属性时,元素会贴着父元素的padding,所以最好用时候都设置一下
fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 left, top, right 以及 bottom 属性进行规定
sticky CSS3新属性,表现类似position:relative和position:fixed的合体,在目标区域在屏幕中可见时,它的行为就像position:relative; 而当页面滚动超出目标区域时,它的表现就像position:fixed,它会固定在目标位置

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

张鑫旭博客参考

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

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

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

  1. 被非空内容、padding、border和或clear分隔开。
  2. 不在一个普通流中或BFC中。
  3. margin在垂直方向上不相邻。
  1. 子元素和父元素的兄弟元素之间被非空内容如padding、border分隔开,即为父元素添加非空内容、padding、border。
  2. 父元素display为 inline-block、table、flex
  3. 父元素overflow为hidden
上一篇 下一篇

猜你喜欢

热点阅读