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

浮动定位BFC边距合并

作者: 前端小木鱼 | 来源:发表于2017-09-25 01:23 被阅读0次

问答

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

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

  • 对父容器的影响:如果父容器中的元素都是浮动元素,那么父容器会失去它的高度,在浏览器的表现为,父元素并未包裹住子元素。
  • 对其他浮动元素的影响:浮动元素会按照顺序排列下去,若父容器剩余的宽度不够放下下一个浮动元素,那么它将向下移动,若是高度不同,在下移的过程中,浮动元素还有可能会被卡住。
  • 对普通元素的影响:普通元素无法感知到浮动元素,会被浮动元素遮挡。
  • 对文字的影响:文字可以感知浮动元素,会环绕浮动元素排列。

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

清除浮动是指解决父容器因所有子元素全都浮动而高度塌陷问题。
清除浮动的方法:

  • 将父元素设置为浮动。
  • 在浮动元素的后面添加一个空的元素,并设置其样式为 clear: both。
  • 在浮动元素的后面添加一个伪元素,并设置其样式为 clear: both.。
  • 让浮动元素的父元素形成BFC,消除浮动对后续元素的影响。

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

  • 普通流是默认定位方式,在普通流中元素框的位置由元素在html中的位置决定,元素position属性为static或继承来的static时就会按照普通流定位,这也是我们最常见的方式。
  • 相对定位比较简单,对应position属性的relative值,如果对一个元素进行相对定位,它将出现在他所在的位置上,然后可以通过设置垂直或水平位置,让这个元素相对于它自己移动,在使用相对定位时,无论元素是否移动,元素在文档流中占据原来空间,只是表现出来的位置会改变。
  • 绝对定位是通过absolute和fixed实现,absolute的参考点是绝对定位元素相对于距离最近的非static祖先元素决定的;如果没有已定位的祖先元素,则是由html决定;fixed参考点是视口;绝对定位更多是使用在相对于其它元素进行定位的时候,脱离文档流。

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

因为绝对定位的元素脱离了文档流,可以覆盖在页面上其他元素的上方,z-index属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。

  • z-index值可为负数
  • z-index 仅能在定位元素上奏效(非 position: static;)

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

  • 使用负margin,使元素位置发生了偏移,原位置会被其他后续元素占据,影响其他元素的位置。
  • 使用position: relative,元素在文档中的位置还是保留的,不会影响其他元素的位置,只是视觉上的偏移

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

BFC,块级格式化上下文(Block Format Content),创建了BFC的元素就是一个独立的盒子,盒子里布局不受外部影响,也不影响外部元素的布局。

如何生成BFC:
  • float为 left|right
  • overflow为 hidden|auto|scroll
  • display为 table-cell|table-caption|inline-block
  • position为 absolute|fixed
作用:
  • BFC会阻止垂直外边距(margin-top、margin-bottom)折叠只要让它们不在同一个BFC就行了,但是对于两个相邻元素来说,意义不大,没有必要给它们加个外壳,但是对于嵌套元素来说就很有必要了,只要把父元素设为BFC就可以了。这样子元素的margin就不会和父元素的margin发生重叠 示例
  • BFC不会重叠浮动元素 示例
  • BFC可以包含浮动 示例

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

  • 两个在普通文档流中相邻的元素外边距相遇的时候发生合并。这个相邻可以是父子关系相邻,兄弟关系相邻,一个元素内部没有东西,自身的上下边距相遇时也会发生外边距合并。只有普通文档流中块级元素的垂直外边距才会发生外边距合并。内联元素、浮动元素或绝对定位元素之间的外边距不会合并。
  • 如何合并:会选取较大值进行合并。合并的结果: 两个外边距都是正数,取两者之中的较大者;两个外边距都是负数,取两者之间绝对值较大者;当两个外边距一正一负时,取两者的和。
  • 不让相邻元素外边距合并的方法:
    1.被非空内容、padding、border 或 clear 分隔开。
    2.不在一个普通流中或一个BFC中。
    3.margin在垂直方向上不毗邻。
  • 父子外边距合并范例

代码

1.alert
2.表单
3.模态框
4.导航栏

相关文章

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

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

  • 浮动定位BFC边距合并

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

网友评论

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

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