博客列表 >定位的类型与应用

定位的类型与应用

手机用户1607314868
手机用户1607314868原创
2020年12月21日 23:48:141243浏览

浮动的本质

浮动本质是为了解决图文并排显示的问题
浮动要解决的两个问题:
1.浮动元素的高度对于它的包含块不可见
2.浮动元素可以BFC块使它不影响到后面的元素布局
左浮动:float:left; 右浮动:float:right;
清除浮动:clear:both;

定位的种类

定位的属性是position
定位类型:静态定位static,相对定位relative,绝对定位absolute,固定定位fixed。

  1. 静态定位,”position:static” 是默认定位
  2. 相对定位:relative 相对于该元素在文档流中的原始位置进行偏移
    不脱离文档流,原来位置留下空白,如果想要盒子偏离自己原本的位置,却保留在文档流中,可以使用relative
  3. 绝对定位:absolute 相对于它的祖先中离它最近的‘定位元素’的位置发生偏移。会脱离文档流
  • 定位元素:只要这个元素中有position:relative 或者 position:absolute就称为定位元素
  • 如果祖先中没有定位元素,就参考根元素html定位
    如果我们想实现一个子元素,在父元素内部水平居中,那么父元素可以设置为relative,子元素设置为absolute
  1. 固定定位:position:fixed 绝对定位的一个特例,参考对象是浏览器。当需要一个元素在固定不变的位置时,就是用固定元素。

模态框案例

  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. <title>模态框</title>
  7. <style>
  8. *{
  9. margin: 0;
  10. padding: 0;
  11. box-sizing: border-box;
  12. }
  13. header{
  14. background-color: lightgreen;
  15. padding: 0.5em 2em;
  16. overflow: hidden;
  17. }
  18. header h2{
  19. float: left;
  20. }
  21. header button{
  22. float: right;
  23. width: 10em;
  24. height: 2.5em;
  25. }
  26. .modal .modal-backdrop{
  27. background-color: rgb(0,0,0,0.5);
  28. position: fixed;
  29. top: 0;
  30. bottom: 0;
  31. left: 0;
  32. right: 0;
  33. }
  34. .modal .modal-body{
  35. padding: 1em;
  36. min-width: 25em;
  37. border: 1px solid #000;
  38. background: linear-gradient(to right, lightcyan, #fff);
  39. position: fixed;
  40. top:10em;
  41. left:30em;
  42. right: 30em;
  43. }
  44. .modal form table {
  45. width: 80%;
  46. }
  47. .modal form table caption {
  48. font-weight: bold;
  49. margin-bottom: 1em;
  50. }
  51. .modal form table {
  52. text-align: center;
  53. }
  54. .modal-body{
  55. position: relative;
  56. }
  57. .modal-body .close{
  58. position: absolute;
  59. width: 4em;
  60. height: 2em;
  61. top: 1em;
  62. right: 1em;
  63. }
  64. .modal{
  65. display: none;
  66. }
  67. </style>
  68. </head>
  69. <body>
  70. <header>
  71. <h2>php中文网</h2>
  72. <button>消息</button>
  73. </header>
  74. <div class="modal">
  75. <div class="modal-backdrop"></div>
  76. <div class="modal-body">
  77. <button class="close">关闭</button>
  78. <form action="">
  79. <table>
  80. <caption>消息列表</caption>
  81. <tr>
  82. <th>系统消息</th><th>好友消息</th>
  83. </tr>
  84. <tr>
  85. <td>xxxxx</td><td>yyyyy</td>
  86. </tr>
  87. </table>
  88. </form>
  89. </div>
  90. </div>
  91. <script>
  92. const btn = document.querySelector('header button');
  93. const modal = document.querySelector('.modal');
  94. const close = document.querySelector('.close');
  95. btn.addEventListener('click', setModal, false);
  96. close.addEventListener('click', setModal, false);
  97. function setModal(ev) {
  98. ev.preventDefault();
  99. let status = window.getComputedStyle(modal, null).getPropertyValue('display');
  100. modal.style.display = status === 'none' ? 'block' : 'none';
  101. }
  102. </script>
  103. </body>
  104. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议