目录
1. 传统网页布局的三种方式
网页布局的本质——用 CSS 来摆放盒子,把盒子摆放到合适的位置。
- 普通流(标准流)
- 浮动
- 定位
2. 标准流(普通流/文档流)
所谓的标准流:根据标签元素的类型,按照规定的默认方式排列。
1. 块级元素会独占一行,按照从上向下顺序排列。
- 常用元素:div、hr、br、p、h1~h6、ul、ol、dl、form、table等
- 常用元素:span、a、i、em 等
3.为什么需要浮动?
问题1 如何让多个块级盒子(div)水平排列成一行?(不用浮动)
可以将子元素转换为行内块元素可以实现一行显示,但是子元素之间有很明显的空隙,如下所示:
问题2 如何实现两个盒子的左右对齐?
4. 什么是浮动?
float 属性用于创建浮动框,将其移动到一边,直到其左边缘或右边缘触及父级块元素的边缘或另一个浮动框的边缘。
语法:
选择器 {float: 属性值;}
属性值 | 描述 |
none | 元素不浮动(默认值) |
left | 元素向左浮动 |
right | 元素向右浮动 |
效果如下所示:(蓝色为背景)
此时父元素是块级,可见子元素1的左边缘和父级的左边缘对齐、2的右边缘与父级的右边缘对齐。
此时父元素是块级,可见子元素1的左边缘和父级的左边缘对齐、1的右边缘与2的左边缘对齐。
5. 浮动的特性(重难点)
元素加了浮动之后,会具有很多特性,需要掌握。
- 浮动的元素会脱离标准流(脱标),脱离标准普通流的控制(浮)移动到指定位置(动),(俗称脱标,脱离具体规则)
- 浮动的元素会一行内显示且元素顶部对齐
- 浮动的元素具有行内块元素的特性
- 浮动的盒子不再保留原先的位置
-
如果块级子盒子没有设置宽度,默认宽度和父级一样宽,但是给其添加浮动后,它的大小根据内容来决定
-
浮动的盒子中间是没有缝隙的,是紧挨着的
5.1 部分特性演示:
1. 不再保留原先的位置,如下图所示:
浮动的元素漂浮在标准流的上面,不占有原始位置,脱标。
父级装不下,如图所示:
为了约束浮动元素位置,网页布局一般采用的策略是:先用标准流的父元素上下排列,之后内部子元素采用浮动左右排列,符合网页布局第一准则。一句话概括:浮动元素经常和标准流的父级搭配使用。
网页布局第二准则:先设置盒子大小,之后设置盒子位置。
6. 浮动布局注意点
6.1 浮动元素和标准流父盒子搭配
先用标准流的父元素上下排列,之后内部子元素采用浮动左右排列。
6.2 一个元素浮动了,理论上其他的兄弟元素也要浮动
7. 思考
1. 前面浮动的元素都有一个标准流的父元素,他们有一个共同点,都有高度。但是所有的父盒子都必须有高度吗?
答:不必须。
2. 理想状态,让子盒子撑开父盒子,有多少子盒子,父盒子就有多大。但是不给父盒子高度会有问题吗?
答:会有问题,子盒子浮动后,父盒子高度为0,会影响后面的布局。解决办法:清除浮动。