传统网页布局的三种方式
本质:用CSS摆放盒子。
实际开发中,一个页面基本都包含了这三种布局方式:
1、普通流(标准流/文档流):最基本的布局方式
标签按照规定好默认方式排列
- 块级元素自己独占一行
- 行内元素按照顺序从左到右排列
2、浮动
3、定位
浮动
float属性用于创建浮动框,将其移动到一边知道左边缘或右边缘触及包含块或另一个浮动框的边缘。
要想块元素水平排列如果转换成行内块之间会有大的空白缝隙很难控制。
浮动可以改变元素标签默认的排列方式。
网页布局第一准则:多个块级元素纵向排列找标准流,横向找浮动。
浮动特性
加了浮动之后的元素会偶很多特性。
1、浮动元素会脱离标准流(脱标)
2、会一行内显示并且元素顶部对齐
3、会具有行内块元素的特性
4、浮动的盒子不会保留原先的位置
- 任何元素都可以浮动,添加之后具有行内块特性。
- 如果块级盒子没有设置宽度,默认宽度和父级一样宽但是添加浮动之后大小根据内容来决定。
- 浮动的盒子中间没有缝隙,是紧挨着的。
- 行内元素同理。
浮动元素经常和标准流父级搭配使用
为了约束浮动元素的位置,网页布局一般采取的策略是:
先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置。
网页布局第二准则:先设置盒子大小,再设置盒子的位置。
1、浮动和标准流父盒子搭配
2、一个元素浮动了,其他兄弟元素也要浮动。
3、浮动的盒子智慧影响浮动盒子后面的标准流,不会影响前面。
为什么要清除浮动
很多父盒子不方便给高度,让子盒子撑开父亲。但是子盒子浮动又不占有位置,最后父级盒子高度为0时,就会影响下面的标准流盒子。
清除浮动本质
- 清除浮动元素造成的影响。
- 如果父盒子本身又高度,则不需要清除浮动。
- 清除浮动之后,父级就会根据浮动的子盒子自动检测高度。
语法:
清除浮动策略:闭合浮动。
清除浮动方法
1、额外标签法也称为隔墙法,是W3C推荐的方法(不常用)
缺点:添加许多无意义标签,结构化较差
这个新增的盒子要求必须是块级元素不能是行内元素。
2、父级添加overflow属性。
将其属性值设置为hidden、auto或scroll
缺点:无法显示溢出部分
3、父级添加after属性。(伪元素清除浮动)
是额外标签法的升级版,也是给父元素添加
通过css额外添加标签
缺点:照顾低版本浏览器
代表网站:百度、淘宝网、网易等。
4、父级添加双伪属性
语法:
照顾版本浏览器
代表网站:小米、腾讯等。
清除浮动总结