首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

浮动定位BFC边距合并(3)

浮动定位BFC边距合并(3)

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

z-index属性适用于定位元素(position属性值为 relative 或 absolute 或 fixed的对象),用来确定定位元素在垂直于显示屏方向(称为Z轴)上的层叠顺序(stack order)。

z-index值越大,越在最上层。且只有在相同父元素中才能比较。
5.position:relative和负margin都可以使元素位置发生偏移?二者有什么区别?

    position:relative 不会影响其他的普通文档流的,普通文档流仍然会在偏移之前的占据的位置后面正常排列。只是视觉上有可能覆盖到普通文档流。

    负margin 本身仍然是普通文档流中的一员,实际上位置发生偏移,会影响之后的普通文档流的排列。

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

    BFC是 Block Format Context 格式化块状上下文规则。

    生成BFC的方法。
        float:right/left;
        overflow:不为visible;
        position:absolute/fixed
        display:inline-block,table-cell,table-capation

display:table也认为可以生成BFC,其实这里的主要原因在于Table会默认生成一个匿名的table-cell,正是这个匿名的table-cell生成了BFC

    BFC规则

        内部的Box会在垂直方向上一个接一个的放置

        垂直方向上的距离由margin决定。(完整的说法是:属于同一个BFC的两个相邻Box的margin会发生重叠,与方向无关,其中一个元素生成新的BFC就不会再发生重贴。)

        每个元素的左外边距与包含块的左边界相接触(从左向右),即使浮动元素也是如此。(这说明BFC中子元素不会超出他的包含块,而position为absolute的元素可以超出他的包含块边界)

        BFC的区域不会与float的元素区域重叠

        计算BFC的高度时,浮动子元素也参与计算

        BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面元素,反之亦然。

可以解决的问题有:

    父元素生成BFC就可以包住浮动元素,达到清除浮动的目的,解决浮动元素父元素高度塌陷。

    解决外边距合并问题,同处于一个BFC规则下的相邻元素、嵌套元素,只要它们之间没有阻挡(如:边框、非空内容、padding等)就会发生margin重叠。这是只要让其中一个元素生成新的BFC就能解决margin重叠问题。

7.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例.
  • 只有普通文档流中块框的垂直外边距才会发生外边距合并。
  • 合并的情景:
上下相邻
这种情况合并以外边距大者为准,不管有没有外边框。

上下相邻
这种情况合并以外边距大者为准,不管有没有外边框。




    如何不让其合并。

对于第一种相邻子元素的margin,可以为第一个元素或者第二个元素加上一个新的BFC外壳,如可以为第一个元素加一个absolute的父元素。

对于第二种可以为父元素创建新的BFC,或者为父元素加上padding或者border.

对于第三种自身合并直接加content就行了。

返回列表