博主信息
博文 41
粉丝 0
评论 0
访问量 41702
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
简述定位的类型与应用场景和使用条件(模态框案例)
陈强
原创
1169人浏览过

定位的类型

定位属性 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>

图片演示:

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:1.错别字: "先对"改为"相对"; 2. 元素能否设置宽高与它是不是定位元素无关... ============== 不要认为不写评语就没有仔细看作业... 每位同学花了二个小时写的作业,尽管我不能用二个小时看,但也尽可能逐字看一遍的,你们尊重知识,我尊重你们的劳动
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学