目录
1.浮动可以让多个块级盒子一行没有缝隙排列显示,经常用于横向排列盒子。
2.定位则是可以让盒子自由的在某个盒子内移动位置或者固定屏幕中某个位置,并且可以压住其他盒子。
定位:将盒子定在某一个位置,所以定位也是在摆放盒子,按照定位的方式移动盒子。
定位=定位模式+边偏移。
定位模式用于指定一个元素在文档中的定位方式。边偏移则决定了该元素的最终位置。
position属性来设置,其值可以分为四个:
| 值 | 语义 |
| static | 静态定位 |
| relative | 相对定位 |
| absolute | 绝对定位 |
| fixed | 固定定位 |
边偏移就是定位的盒子移动到最终位置。有top、bottom、left和right 4个属性。

静态定位是元素的默认定位方式,无定位的意思。
选择器 { position: static; }
相对定位是元素在移动位置的时候,是相对于它的原来的位置来说的。
选择器 { position: relative; }
特点:
绝对定位是元素在移动位置的时候,是相对于它祖先元素来说的。
选择器 { position: absolute; }
特点:
固定定位是元素固定于浏览器可视区的位置。
主要使用场景:可以在浏览器页面滚动时元素的位置不会改变。
选择器 {position: fixed;}
特点:
固定定位小技巧:固定在版心右侧位置。
小算法:
粘性定位可以被认为是相对定位和固定定位的混合
选择器 { position: sticky; top: 10px; }
特点:
跟页面滚动搭配使用。兼容性较差,IE不支持。

在使用定位布局时,可能会出现盒子重叠的情况。此时,就可以使用z-index来控制盒子的前后次序(z轴)
选择器 { z-index: 1; }
浮动元素、绝对定位(固定定位)元素的都不会触发外边距合并的问题。
浮动元素只会压住它下面标准流的盒子,但不会压住下面标准流盒子里面的文字(图片)
但是绝对定位(固定定位)会压住下面标准流所有内容。
浮动之所以不会压住文字,是因为浮动产生的目的最初是为了做文字环绕效果的。
通过盒子模型,清楚知道大部分html标签是一个盒子。
通过CSS浮动、定位可以让每个盒子排列成为网页。
一个完整的网页,是标准流、浮动、定位一起完成布局的,每个都有自己的专门用法。
1、标准流
可以让盒子上下排列或者左右排列,垂直的块级盒子显示就用标准流布局。
2、浮动
可以让多个块级元素一行显示或者左右对齐盒子,多个块级盒子水平显示就用浮动布局。
3、定位
定位最大的特点是有层叠的概念,就是可以让多个盒子前后叠压来显示。如果元素自由在某个盒子内移动就用定位布局。
本质:让一个元素在页面中隐藏或者显示出来。
display属性用于设置一个元素如何显示。
display隐藏元素后,不再占有原来的位置。
visibility属性用于指定一个元素应可见还是隐藏。
visibility隐藏元素后,继续占有原来的位置。
overflow属性指定了如果内容溢出一个元素的框(超过其指定高度及宽度)时,会发生什么。

一般情况下,我们不想让溢出的内容显示出来,因为溢出的部分会影响布局。
但是如果有定位的盒子,请慎用overflow:hidden因为它会隐藏多余的部分。