饥人谷技术博客

浮动、定位、BFC、边距合并

2017-08-06  本文已影响0人  _Dot912

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

  1. 特征:
  1. 影响:

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

  1. 清除浮动:元素浮动之前在标准流中纵向排列,浮动之后可以理解为横向排列,所以清除浮动可以理解为打破横向排列。

  2. 如何清除:

但我们希望div2能够排列在div1下面,就像div1没有浮动而div2左浮动一样,这时就要用到清除浮动,我们应在div2中设置"clear: left;"来指定div2左边不允许出现浮动元素,这样div2就被迫下移一行。

结论:clear规则只影响使用清除的元素本身,不能影响其他元素

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

三种定位方式:普通流、position定位、浮动。默认普通流。

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

  1. 作用:
    z-index属性设置元素的堆叠顺序。该属性设置一个定位元素沿z轴的位置,z轴定义为垂直延伸到显示区的轴。
  2. 使用:
    z-index的值默认为auto,即堆叠顺序继承自父元素,不建立层叠上下文,值为0则建立层叠上下文,也可设置值为number,number值可以为负数。如果为正数,则离用户更近,为负数则表示离用户更远,值越大越靠近用户,当元素的层叠水平一致、层叠顺序相同时,在DOM流处于后面的元素会覆盖前面的元素。
    注意:z-index只能在值不为static的定位元素上奏效(例如 position:absolute;),且值只能在兄弟元素间进行比较。

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

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

  1. BFC——block formatting context:块格式化上下文,是Web页面的可视化CSS渲染的一部分,是块盒子的布局发生、浮动、互相交互的区域。通俗理解,首先BFC是一个独立的布局环境,我们可以理解为一个箱子(实际上是看不见摸不着的),箱子里面物品的摆放是不受外界的影响的,反之也如此。

  2. 如何生成:一个块格式化上下文由以下之一创建:

  1. 作用:

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

1、 概念
块的顶部外边距和底部外边距有时被组合(折叠)为单个外边距,其大小是组合到其中的最大外边距,这种行为称为外边距塌陷(margin collapsing),有的地方翻译为外边距合并。

2、 合并场景及如何合并——垂直方向上合并。

元素按照以上规则发生合并,即使外边距为0,这些规则也仍旧生效。因此,无论父元素的外边距是否为0,第一个或者最后一个子元素的外边距会被父元素的外边距"截断",在负外边距的情况下,合并后的外边距为最大正外边距与最小负外边距之和。这就是一系列段落元素占用空间非常小的原因。

3、 外边距合并规则:

4、 阻止相邻元素外边距合并:BFC-块格式化上下文——会阻止元素外边距合并,如把元素设置为浮动和绝对定位那么它的外边距不会发生合并。

5、 父子外边距合并示例:

<style>
        .dad {
            background: red;
            width: 200px;
            height: 200px;
            margin: 20px;
        }
        .son {
            background: yellow;
            width: 100px;
            height: 100px;
            margin: 30px;
        }
</style>
<div class="dad">
    <div class="son"></div>
</div>

代码

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

参考资料

上一篇 下一篇

猜你喜欢

热点阅读