绝对、相对、固定定位和浮动的问题

在一个div里加绝对或者固定定位然后再加浮动,浮动就没有效果。但是相对定位再加浮动,浮动就会有效果,这是为什么呢

绝对或者固定定位都会使元素脱离文档流,浮动的效果也是脱离文档流,当这两种情况发生冲突的时候,会根据绝对或者固定定位的规则走
相对定位不会使元素脱离文档流所以不会和浮动所触发的脱离文档流有冲突

绝对定位是相对于元素最近已经定位的祖先元素(设置了绝对或者相对定位的祖先元素),固定定位是相对于浏览器窗口的,二者都会让元素脱离文档流,此时添加浮动是不会有效果的,如果想改变位置,可以使用left right top等位置元素改变其位置;相对定位是相对于元素原来应该存在的位置进行定位,不会让元素脱离文档流,允许使用浮动来改变元素位置