网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。
浮动
什么是浮动?
float 属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。
浮动最开始产生的原因是实现 图文环绕:浮动的元素不会遮挡文字,文字会被向右 推出。
浮动特性
浮动元素经常和标准流父级搭配使用
浮动布局注意点
浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流。
为什么需要清除浮动? 由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会影响下面的标准流盒子。
本质:清除浮动的本质是清除浮动元素脱离标准流造成的影响:浮动的子标签无法撑开父盒子的高度
注意:
清除浮动策略是?
清除浮动的多种方式
优点:简单粗暴,方便
缺点:仅限于父元素的高度是固定的
优点:通俗易懂,书写方便
缺点:添加许多无意义的标签,结构化较差
增加无意义的标签,不推荐使用。
可以给父级添加
优点:代码简洁
缺点:无法显示溢出的部分
优点:没有增加标签,结构更简单,直接给父元素标签加类即可清除浮动。
缺点:照顾低版本浏览器
代表网站:百度、淘宝网、网易等
(扩展补充)BFC的介绍
块格式化上下文(Block Formatting Context):BFC
创建BFC方法:
html标签是BFC盒子
浮动元素:float除none以外
行内块元素是BFC盒子
overflow属性取值不为visible
绝对定位元素:position(absolute、fixed)
BFC盒子常见特点:
BFC盒子会默认包裹住内部子元素(标准流、浮动)------- 应用:清除浮动
BFC盒子本身与子元素之间不存在margin的塌陷现象------- 应用:解决margin的塌陷