美文网首页
浮动定位BFC边距合并

浮动定位BFC边距合并

作者: kumabearplus | 来源:发表于2017-04-30 09:29 被阅读14次

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

浮动的元素会脱离文档流,向左或者向右移动至包含块内边缘或者同样浮动的元素外边缘。

  • 对父容器:如果父容器内的元素均设置了浮动,那么他们脱离普通流无法撑起父容器的高度,导致父元素的塌陷。
  • 对其它浮动元素:同一父容器内的浮动元素按照设定的方向并排排列,当父元素的宽度不够时,后面的元素会向下移动,直到有足够的空间;如果浮动元素的高度不同,那么有可能挡住移动的路径。
  • 对普通元素:无法辨别普通元素,有可能导致覆盖其它普通元素,不会占据其位置。
  • 对文字:文字能够识别浮动元素,会围绕浮动元素。

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

清除浮动指的清除浮动元素对当前元素的影响;

  1. 在文档中添加一个元素,给他设置一个样式,clear:both;这种方法会在文档的最后产生一个无意义标签。
  2. 使用:after 伪元素 消除浮动
   .clearfix:after {
     content: "";
     display: block;
     clear: both;
   }
  1. 将父容器变成BFC

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

属性 描述
absolute 绝对定位 根据不为默种定位方式认定位的第一个父元素进行定位
static 默认值 没有定位,元素出现在正常的流中
fixed 生成绝对定位的元素,相对于浏览器窗口进行定位
relative 相对定位。相对于元素本身正常位置进行定位,通过top、bottom、left、right属性来设置偏移量。使用场 景为绝对定位设定参照物或对元素自身位置进行局部调整。
inherit 从父元素继承定位属性
sticky 对象在常态时遵循普通流。它就像是relative和fixed的合体,当在屏幕中时按常规流排版,当卷动到屏幕外 时则表现如fixed

css的定位方式基本有四种:普通流,相对定位,绝对定位,固定定位

  • 普通流是默认定位方式,在普通流中元素框的位置由元素在html中的位置决定,元素position属性为static或继承来的static时就会按照普通流定位,这也是我们最常见的方式。
  • 相对定位比较简单,对应position属性的relative值,如果对一个元素进行相对定位,它将出现在他所在的位置上,然后可以通过设置垂直或水平位置,让这个元素相对于它自己移动,在使用相对定位时,无论元素是否移动,元素在文档流中占据原来空间,只是表现出来的位置会改变。
  • 绝对定位的元素的位置是相对于距离最近的非static祖先元素位置决定的。如果元素没有已定位的祖先元素,那么他的位置就相对于初始包含块html来定位。因为绝对定位与文档流无关,所以绝对定位的元素可以覆盖页面上的其他元素,可以通过z-index属性控制叠放顺序,z-index越高,元素位置越靠上。也可以理解为层级
  • 固定定位是属于绝对定位中的一种。一般使用场景,例如:导航栏,右侧工具栏,底部回到顶部按钮等。它的定位是相对于浏览器的视窗口(viewport)来定的,而其他的绝对定位则是相对于文档(html)定位的。

注:绝对定位,固定定位会脱离文档流

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

z-index 属性指定一个元素的堆叠顺序,在相同定位中,拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
z-index有三个属性:

  • auto 默认。堆叠顺序与父元素相等。
  • number设置元素的堆叠顺序。
  • inherit规定应该从父元素继承 z-index 属性的值。

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

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

  • margin会使元素在文档流中的位置发生偏移,它会放弃偏移之前占据的空间,紧挨其后的元素会填充这部分空间。
  • 相对定位后元素位置发生偏移,它仍会坚守原来占据的空间,不会让文档流的其他元素流入。

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

BFC(Block formatting context)直译为"块级格式化上下文",使元素形成独立的与其他块隔离的容器,确保内部元素的属性不会影响到外部其它元素。

生成BFC的元素属性如下:

  • float 除了none以外的值
  • overflow 除了visible 以外的值(hidden,auto,scroll )
  • display (table-cell,table-caption,inline-block, flex, inline-flex)
  • position值为(absolute,fixed)
  • fieldset元素

BFC的作用:

  1. 清除内部浮动


    Paste_Image.png

    2.防止垂直 margin 重叠


    Paste_Image.png

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

当两个垂直外边距(margin)相遇时,将形成一个外边距合并,合并后的高度以这两个外边距中高度值较大值为准。

外边距合并:

  • 相邻的同胞元素


    Paste_Image.png

    把相邻元素设置成BFC可以不让相邻元素外边距合并

  • 父元素与子元素(在父元素没有边框,padding等的情况下,子元素与父元素的垂直外边距会发生合并)


    Paste_Image.png

    阻止父子外边距合并如下:

  • 将父元素生成一个新的BFC,
  • 给父元素加上一个边框或者padding等.
  • 当元素外边距为负值时,元素会往该反向移动多少距离(例如上部外边距为10px,就会往上移动10px),当2个元素的外边距之和小于0时,外边距为负值的元素会覆盖其他元素,对其他元素产生影响;当2个元素的外边距之和为正数时,即为这2个元素之间的外边距。
Paste_Image.png

相关文章

  • 浮动定位BFC边距合并

    1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动模型也是一种可视化模型,浮动的...

  • 浮动定位BFC边距合并

    1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素会脱离普通文档流,直到碰到...

  • 浮动定位BFC边距合并

    浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素也是一种可视化格式模型,浮动的...

  • 浮动定位BFC边距合并

    1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素的特征:首先脱离文档正常流...

  • 浮动定位BFC边距合并

    1. 浮动元素的特征,对其他浮动元素、普通元素、文字的影响 浮动模型是一种可视化格式模型,浮动元素可以左右移动(根...

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

    浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动的元素会脱离文档流.向左或者向右移...

  • 浮动定位BFC边距合并

    1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素会脱离标准的文档流,浮动的...

  • 浮动定位BFC边距合并

    1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素不在文档的普通流中,它可以...

  • 浮动定位BFC边距合并

    浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素使一个元素脱离正常的文档流,然...

网友评论

      本文标题: 浮动定位BFC边距合并

      本文链接:https://www.haomeiwen.com/subject/spqzzttx.html