博客列表 >1221作业-定位的类型与应用场景,实现一个模态框

1221作业-定位的类型与应用场景,实现一个模态框

世纪天城
世纪天城原创
2020年12月23日 14:59:36503浏览

定位的类型与应用场景
1.静态定位position: static 默认,也就是文档流定位,元素的显示位置与源码顺序一致;
2.相对定位position: relative 相对于该元素在文档流中的原始位置进行偏移

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>相对定位</title>
  8. <style>
  9. div{
  10. width: 20em;
  11. height: 20em;
  12. background-color: lemonchiffon;
  13. }
  14. /* 相对定位:相对于该元素在文档流中的原始位置进行偏移 */
  15. p{
  16. width: 15em;
  17. height: 5em;
  18. line-height: 5em;
  19. background-color: lightcoral;
  20. position: relative;
  21. top: 10em;
  22. left: 10em;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div>
  28. <p>相对定位</p>
  29. </div>
  30. </body>
  31. </html>

图例:

3.绝对定位 position: absolue 相对于它的祖先中离它最近的”定位元素”的位置发生偏移

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>绝对定位 (position: absolue)</title>
  8. <style>
  9. div{
  10. width: 20em;
  11. height: 20em;
  12. background-color: lightcyan;
  13. position: relative;
  14. }
  15. /* 绝对定位:相对于它的祖先中离它最近的”定位元素”的位置发生偏移 */
  16. p{
  17. width: 5em;
  18. height: 5em;
  19. background-color: lightgreen;
  20. position: absolute;
  21. top: 5em;
  22. left: 5em;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div>
  28. <p>绝对定位</p>
  29. </div>
  30. </body>
  31. </html>

图例:

4.固定定位position: fixed 是绝对定位的一个特例,它始终相对于html定位

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>固定定位(position: fixed)</title>
  8. <style>
  9. div{
  10. width: 20em;
  11. height: 20em;
  12. background-color: lightgreen;
  13. margin: 0 auto;
  14. }
  15. /* 是绝对定位的一个特例,它始终相对于html定位 */
  16. p{
  17. width: 5em;
  18. height: 5em;
  19. position: fixed;
  20. top: 0;
  21. left: 0;
  22. background-color: lightsalmon;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div>
  28. <p>固定定位</p>
  29. </div>
  30. </body>
  31. </html>

图例:

实现一个模态框

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>登录框</title>
  6. <style>
  7. *{
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. body{font-size: 1em;}
  13. header{
  14. padding: 1em 0;
  15. background-color: rgb(65, 220, 225);
  16. overflow: hidden;
  17. }
  18. header h2{
  19. float: left;
  20. }
  21. header button{
  22. padding: 0.5em 1.5em;
  23. float: right;
  24. margin-right: 1em;
  25. }
  26. .modal{
  27. width: 20em;
  28. height: 15em;
  29. min-height: 15em;
  30. background-color: rgb(114, 245, 250);
  31. position: fixed;
  32. top: 0;
  33. left: 0;
  34. right: 0;
  35. bottom: 0;
  36. margin: auto;
  37. display: none;
  38. }
  39. .close{
  40. width: 2.8em;
  41. height: 2.8em;
  42. border-radius: 50%;
  43. padding: 0.2em;
  44. color: red;
  45. position: absolute;
  46. top: 0.2em;
  47. right: 0.2em;
  48. }
  49. .close:hover{
  50. background-color: lawngreen;
  51. }
  52. .modal-body{
  53. padding: 1em;
  54. min-height: inherit;
  55. }
  56. .form{
  57. position: fixed;
  58. }
  59. .form div{
  60. padding: 2em 0.2em;
  61. }
  62. .form div input{
  63. min-width: 18em;
  64. height: 2.5em;
  65. }
  66. .button{
  67. padding: 1em 2em;
  68. position: absolute;
  69. bottom: 0;
  70. left: 9em;
  71. }
  72. .mengban{
  73. position: fixed;
  74. top: 0;
  75. left: 0;
  76. right: 0;
  77. bottom: 0;
  78. background-color: rgb(0, 0, 0,0.4);
  79. /* display: none; */
  80. }
  81. </style>
  82. </head>
  83. <body>
  84. <!-- 页眉 -->
  85. <header>
  86. <h2>你好 欢迎光临</h2>
  87. <button type="">登录</button>
  88. </header>
  89. <main class="modal">
  90. <div class="mengban"></div>
  91. <div class="modal-body">
  92. <button class="close">关闭</button>
  93. <form class="form" action="">
  94. <div><label for="">用户 </label>
  95. <input type="text" name="admin"></span>
  96. <div><label for="">密码 </label>
  97. <input type="password"></div>
  98. <button class="button">登录</button>
  99. </form>
  100. </div>
  101. </main>
  102. <script>
  103. const btn = document.querySelector('header button');
  104. const modal = document.querySelector('.modal');
  105. const close = document.querySelector('.close');
  106. btn.addEventListener('click', setModal, false);
  107. close.addEventListener('click', setModal, false);
  108. function setModal(ev) {
  109. ev.preventDefault();
  110. let status = window.getComputedStyle(modal, null).getPropertyValue('display');
  111. modal.style.display = status === 'none' ? 'block' : 'none';
  112. }
  113. </script>
  114. </body>
  115. </html>

图例:

我点击时

点击后弹出

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