1、定位定义

通过position属性指定了元素的定位类型,设置了该属性后能脱离文档流。
relative 相对定位
absolute 绝对定位
fixed 固定定位
它有四个方向进行位置调整:left top right bottom

2、相对定位

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>相对定位</title>
  6. <style>
  7. .container{
  8. width: 300px;
  9. height: 300px;
  10. background-color:rebeccapurple;
  11. position: relative;
  12. left: 50px;
  13. top: 50px;
  14. }
  15. .box1{
  16. width: 100px;
  17. height: 100px;
  18. background-color:red;
  19. position: relative;
  20. left: 10px;
  21. top: 10px;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div class="container">
  27. <div class="box1"></div>
  28. </div>
  29. </body>
  30. </html>

效果如下,设置了相对定位或者绝对定位后,可以设置容器离left和top的距离像素,相对定位或者绝对定位是找具有定位元素的父级元素进行位置调整,如果父级元素不存在定位,则继续向上寻找,直到顶层。
image.png

3、绝对定位

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>绝对定位</title>
  6. <style>
  7. .box1{
  8. width: 300px;
  9. height: 300px;
  10. background-color:rebeccapurple;
  11. position: absolute;
  12. left: 50px;
  13. top: 50px;
  14. }
  15. .box2{
  16. width: 300px;
  17. height: 300px;
  18. background-color:red;
  19. position: absolute;
  20. left: 100px;
  21. top: 100px;
  22. }
  23. .box3{
  24. width: 300px;
  25. height: 300px;
  26. background-color:blue;
  27. position: absolute;
  28. left: 150px;
  29. top: 150px;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <div class="box1"></div>
  35. <div class="box2"></div>
  36. <div class="box3"></div>
  37. </body>
  38. </html>

如下图,设置了几个绝对定位就会出现几层,层是可以叠加的。
与浮动不一样,浮动的元素都在一个同一个浮动层上不会出现叠加:
image.png

4、固定定位

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>固定定位</title>
  6. <style>
  7. .box1{
  8. width: 100px;
  9. height: 300px;
  10. background-color:rebeccapurple;
  11. position: fixed;
  12. right: 0px;
  13. top: 500px;
  14. }
  15. .box2{
  16. height: 600px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <div class="box1"></div>
  22. <div class="box2"></div>
  23. <div class="box2"></div>
  24. <div class="box2"></div>
  25. <div class="box2"></div>
  26. <div class="box2"></div>
  27. </body>
  28. </html>

如下图,浮动层会固定在页面的某一个地方:
image.png
如淘宝固定的边栏:
image.png