提问:position跟display、margin collapse、overflow、float这些特性相互叠加后会怎么样?
float、position 和 display 之间的关系:
- 如果display的值为none,那么后两者就不会产生作用,也不会有任何的盒子产生;
- 除此之外,如果元素为absolute或者fixed定位,那么float的属性值相当于‘none’,display的属性如下面的表格所示。
盒的位置根据“top”,“right”,“bottom”和“left”属性与盒的包含块决定。 - 除此之外,如果float属性的值为不是none,那么元素将会浮动,元素的display属性将如下表所示;
- 除此之外,如果元素是根元素,那么元素的属性如下表所示;
- 除此之外,元素的display属性则根据设定来取值。
这是由于float和绝对定位都是使用块框架(block layout)来显示,所以会隐式地改变display的值。
margin collapse 外边距合并
浮动及绝对定位元素外边距不会合并。
overflow
overflow可以应用于float和定位元素。
如果一个绝对定位元素的内容溢出其内容框,而且overflow设置为要求剪裁该内容,使用clip属性可以改变剪裁区域的形状。