前端系列文章——传送门
CSS系列文章——传送门
标准文档流指的是元素排版布局过程中,
元素会默认自动从左往右,
从上往下的流式排列方式,
当前面内容发生了变化,
后面的内容位置也会随着发生变化!
无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”
显然标准流已经无法满足需求,这就要用到浮动
以及某些元素会出现的特定区域,这就要用到定位
浮动可以理解为让某个div元素脱离标准流,漂浮在标准流之上,和标准流不是一个层次
浮动层:给元素的 float 属性赋值后,就是脱离文档流,进行左右浮动,紧贴着父元素(默认为body文本区域)的左右边框
而此浮动元素在文档流空出的位置,由后续的(非浮动)元素填充上去
块级元素直接填充上去,若跟浮动元素的范围发生重叠,浮动元素覆盖块级元素
float:none: 默认值。元素不浮动,并会显示在其在文本中出现的位置left: 元素向左浮动right: 元素向右浮动
浮动后的div宽度会变成 0,但是其内边框可能撑起它的宽和高
clear:none: 默认值,允许两边都可以有浮动对象left: 不允许左边有浮动对象right: 不允许右边有浮动对象both: 两边都不允许都浮动对象
当对于所有的子元素都设置了浮动之后,
而父元素没有去设置高度,
父元素失去了支撑同时父元素的高度消失,
缩成了一条线,高度出现了塌陷
高度固定死,内容如果是后端返回的数据不固定的话,不够灵活
在最后一个浮动标签后,新加一个标签,给其设置 clear:both
clear: both
, 本质是闭合浮动,就是让父盒子闭合出口和入口,不让子盒子出来
如果我们清除了浮动,父元素自动检测子盒子最高的高度,然后与其同高
overflow
属性(不推荐)父元素添加 overflow:hidden
overflow: hidden
, 本质是通过触发BFC
方式,实现清除浮动
after
伪元素清除浮动.clear::after {content: '';display: block;(必须变成块元素)height:0; 处理兼容,让没有高度visbility: hidden;处理兼容,让消失clear: both;}
.clear {*zoom: 1;/* ie6 清除浮动的方式, * 号 只有在IE6 IE7执行,其他浏览器不执行 */
}
.clear::after, .clear::before {content: '';display: block;
}
.clear::after {clear: both;
}
.clear {*zoom: 1;/* ie6 清除浮动的方式, * 号 只有在IE6 IE7执行,其他浏览器不执行 */
}
下一篇:【C习题】栈与对列