浮动定位BFC边距合并

2017-09-28  本文已影响0人  _达斯基

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

浮动元素脱离文档流,会随着float属性值的设定向左或向右移动,直到它的边缘碰到它的包含框或浮动元素的边缘,普通文档流会视浮动元素不存在

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

由于父元素认为其内的浮动的子元素是不存在的, 所以会父元素边框无法撑开的问题, 清楚浮动解决浮动父容器高度塌陷问题;

<div style="clear: both;"></div>

.parent {
overflow: hidden;
}

.parent:after {
content: "";
display: block;
clear: both;
}

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

position总的来说有两类分类: 相对定位和绝对定位
取值可以有: static | relative | absolute | fixed | sticky

static

relative

absolute

fixed

sticky

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

z-index是针对网页显示中的一个特殊属性。因为显示器是显示的图案是一个二维平面,拥有x轴和y轴来表示位置属性。为了表示三维立体的概念如显示元素的上下层的叠加顺序引入了z-index属性来表示z轴的区别。表示一个元素在叠加顺序上的上下立体关系.
在一个层叠上下文中, z-index值较大的元素将叠加在z-index值较小的元素之上。对于未指定此属性的定位对象,z-index 值为正数的对象会在其之上,而 z-index 值为负数的对象在其之下.

position: relative | absolute | fixed 会创建一个new stacking context, z-index属性适用于定位元素(position属性值为 relative 或 absolute 或 fixed的对象),用来确定定位元素在垂直于显示屏方向(称为Z轴)上的层叠顺序
关于z-index那些你不知道的事

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

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

BFC:块级格式化上下文,它是指一个独立的块级渲染区域,只有Block-level BOX参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关

  1. 按照BFC的定义, 只要同属于一个BFC, 两个元素才有可能发生垂直Margin的重叠, 这个包括相邻元素, 嵌套元素,只要他们之间没有阻挡(例如边框,非空内容,padding等)就会发生margin重叠
    因此要解决margin重叠问题,只要让他们不在同一个BFC就行了, 但是对于两个相邻元素来说,意义不大,没有必要给它们加个外壳, 但是对于嵌套元素来说就很必要了, 只要把父元素设置为BFC就可以了. 这样子元素的margin就不会和父元素的margin发生重叠了
  2. BFC不会重叠浮动元素
  3. BFC可以包含浮动
    计算BFC高度时, 浮动子元素也参与运算
    所以这条可以用来处理子元素都是浮动元素时,父元素没有忽略子元素高度的问题

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

按照BFC的定义, 只要同属于一个BFC, 两个元素才有可能发生垂直Margin的重叠, 这个包括相邻元素, 嵌套元素,只要他们之间没有阻挡(例如边框,非空内容,padding等)就会发生margin重叠

  1. 阻止相邻元素外边距合并的方法是给相邻元素添加一个外壳, 是两个相邻元素不在同一个BFC中.

  2. 要阻止父子外边距合并, 可以让父元素形成BFC

可参考
Mdn外边距合并,
CSS: 深入理解BFC和Margin Collapse (margin叠加或者合并外边距)

上一篇 下一篇

猜你喜欢

热点阅读