博客列表 >简述定位的类型与应用场景和使用条件(模态框案例)

简述定位的类型与应用场景和使用条件(模态框案例)

陈强
陈强原创
2020年12月21日 22:36:28959浏览

定位的类型

定位属性 position

属性值 解释
static 默认值:自动定位
relative 相对定位:相对于元素原始位置发生偏移
absolute 绝对定位:相对于祖先元素的”定位属性”发生偏移,如祖先元素没有”定位属性”,则相对于根元素html发生偏移
fixed 固定定位:相对于浏览器视口发生偏移

偏移

属性 解释
top 顶部偏移量,定义元素先对于祖先元素上边线的距离
right 右部偏移量,定义元素先对于祖先元素右边线的距离
bottom 底部偏移量,定义元素先对于祖先元素下边线的距离
left 左部偏移量,定义元素先对于祖先元素左边线的距离

注:

  • relative 相对定位不会脱离文本流;absolute、fixed会脱离文本流。
  • absolute、fixed定位后,元素具备块元素的属性,可以设置宽、高等属性
  • 元素absolute相对定位后,如果父元素是定位元素且四条边的偏移量定义为0,则会完全覆盖父元素;元素fixed固定定位后,四条边的偏移量定义为0,在不定义父元素为定位元素且没设置元素宽度和高度时,元素会铺满整个视口。

代码

  • relative 相对定位
  1. <style>
  2. body div {
  3. width: 20em;
  4. height: 20em;
  5. background-color: lightcoral;
  6. }
  7. body h2 {
  8. position: relative;
  9. top: 1em;
  10. /* right: 0;
  11. bottom: 0; */
  12. left: 1em;
  13. border: 1px solid;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div class="top">
  19. <h2>偏移的元素</h2>
  20. </div>

图片演示

  • absolute 绝对定位并完全覆盖父元素
  1. <style>
  2. * {
  3. margin: 0;
  4. padding: 0;
  5. box-sizing: border-box;
  6. }
  7. body div {
  8. width: 20em;
  9. height: 20em;
  10. background-color: lightcoral;
  11. position: relative;
  12. }
  13. body h2 {
  14. position: absolute;
  15. top: 0;
  16. right: 0;
  17. bottom: 0;
  18. left: 0;
  19. border: 1px solid;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <div class="top">
  25. <h2>偏移的元素</h2>
  26. </div>
  27. </body>

图片演示:

  • 固定定位 fixed 铺满整个视口
  1. <style>
  2. * {
  3. margin: 0;
  4. padding: 0;
  5. box-sizing: border-box;
  6. }
  7. .body {
  8. margin: 0 auto;
  9. }
  10. .body-bg {
  11. background-color: rgb(0, 0, 0);
  12. position: fixed;
  13. top: 0;
  14. left: 0;
  15. right: 0;
  16. bottom: 0;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <div class="body">
  22. <div class="body-bg"></div>
  23. </div>
  24. </body>

模态框案例 fixed固定定位演示

  1. <style>
  2. * {
  3. margin: 0;
  4. padding: 0;
  5. box-sizing: border-box;
  6. }
  7. .body {
  8. margin: 0 auto;
  9. }
  10. .body-bg {
  11. background-color: rgb(0, 0, 0, 0.5);
  12. position: fixed;
  13. top: 0;
  14. left: 0;
  15. right: 0;
  16. bottom: 0;
  17. }
  18. .body .body-modal {
  19. position: fixed;
  20. background-color: #fff;
  21. width: 20em;
  22. top: 10em;
  23. left: 0;
  24. right: 0;
  25. margin: auto;
  26. padding: 2em;
  27. }
  28. </style>
  29. </head>
  30. <body>
  31. <div class="body">
  32. <div class="body-bg"></div>
  33. <div class="body-modal">
  34. <table>
  35. <form action="" method="POST">
  36. <tr>
  37. <td><label>会员名:</label></td>
  38. <td><input type="text" name="username" placeholder="请输入会员名" /></td>
  39. </tr>
  40. <tr>
  41. <td><lable>密码:</lable></td>
  42. <td><input type="password" name="userpwd" placeholder="请输入密码" /></td>
  43. </tr>
  44. <tr>
  45. <td><button type="submit">登录</button></td>
  46. </tr>
  47. </form>
  48. </table>
  49. </div>
  50. </div>
  51. </body>

图片演示:

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议