Blogger Information
Blog 37
fans 1
comment 0
visits 32447
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
网站布局之:浮动(float)和定位(position)详解及运用
Jason Pu?
Original
1766 people have browsed it

一:浮动float

浮动(float)元素可以脱离文档流进行水平方向(left/right)移动,后面的元素会填充它原来的空间,任何一个元素浮动后都会具有块元素特征,但是父元素在计算高度时,会忽略内部的浮动元素,引起高度塌陷,我们可以使用伪元素和BFC两种途径解决此问题。
例如下面是一只因子元素浮动而高度塌陷的盒子,我们使用两种方法来拯救它:

拯救代码:

  1. <style>
  2. .box{
  3. border:1px solid #000;
  4. }
  5. .content {
  6. width: 10em;
  7. height: 10em;
  8. text-align: center;
  9. line-height: 10em;
  10. background-color: skyblue;
  11. float: left;
  12. }
  13. /* 方法1:使用伪元素 */
  14. /* .box:after{
  15. content:'';
  16. display: block;
  17. clear: both;
  18. } */
  19. /* 方法2:BFC */
  20. /* .box{
  21. overflow: hidden;
  22. } */
  23. </style>
  24. </head>
  25. <body>
  26. <div class="box">
  27. <div class="content">我是一个浮动元素</div>
  28. </div>
  29. </body>

二:定位属性(position)

position属性有四个可选值,分别为static、relative、absolute、fixed。
1.static :默认值,不是定位元素。

2.relative :相对定位,相对自身位置定位,可通过设置left、top、right、bottom的值来设置位置,并且它原本所占的空间不变,不会影响其他元素布局,作用:微调元素,作为绝对定位的参考。

3.absolute :绝对定位,相对于它的祖先中离它最近的”定位元素”的位置发生偏移,static不算,如果没有,则相对于html定位,脱离标准文档流

4.fixed :固定定位 始终相对于html进行定位,不会随页面滚动而变,作用:固定广告位窗口,侧边客服窗口,模态框

三:定位实战:写一个模态框

要求:点击“登陆”显示模态框,点击“X”关闭模态框
实现效果如下:
点击前:

点击后:

html代码:

  1. <title>模态框</title>
  2. <link rel="stylesheet" href="test2.css">
  3. </head>
  4. <body>
  5. <header>
  6. <h2>php中文网</h2>
  7. <button>登陆</button>
  8. </header>
  9. <div class="modal">
  10. <!-- 半透明蒙版: -->
  11. <div class="cover"></div>
  12. <!-- 主体 -->
  13. <div class="modal-body">
  14. <button class="close">X</button>
  15. <form action="" method="post">
  16. <table>
  17. <caption>用户登陆</caption>
  18. <tr>
  19. <td> <label for="account">账号:</label> </td>
  20. <td> <input type="text" name="account" id="account"> </td>
  21. </tr>
  22. <tr>
  23. <td> <label for="password">密码:</label> </td>
  24. <td> <input type="password" name="password" id="password"> </td>
  25. </tr>
  26. <tr>
  27. <td> </td>
  28. <td> <input type="submit" value="登陆" id="submit" > </td>
  29. </tr>
  30. </table>
  31. </form>
  32. </div>
  33. </div>
  34. <script src="test2.js"></script>
  35. </body>
  36. </html>

css代码:

  1. *{
  2. margin:0;
  3. padding: 0;
  4. box-sizing: border-box;
  5. }
  6. /* 蒙版: */
  7. .cover {
  8. background-color:rgb(0,0,0,0.5);
  9. position: fixed;
  10. top: 0;
  11. bottom: 0;
  12. left: 0;
  13. right: 0;
  14. }
  15. /* 页眉: */
  16. header {
  17. background-color:#031F47;
  18. padding:.5em 2em;
  19. overflow: hidden;
  20. }
  21. header h2 {
  22. float: left;
  23. font-style:oblique;
  24. color:#208EFF;
  25. }
  26. header button {
  27. float: right;
  28. width:6em;
  29. height: 2.5em;
  30. background-color: #08E4F6;
  31. border-radius: 1em;
  32. }
  33. header button:hover{
  34. cursor: pointer;
  35. background-color: #0DFFE9;
  36. }
  37. .modal .modal-body{
  38. padding:1em;
  39. width:20em;
  40. box-shadow:2px 2px 5px #000; ;
  41. background:linear-gradient(to right bottom,#fff,#208EFF);
  42. border-radius: 0.5em;
  43. /* 固定定位: */
  44. position: fixed;
  45. top:5em;
  46. left: 50%;
  47. margin-left: -10em;
  48. }
  49. .modal form table {
  50. width: 80%;
  51. }
  52. .modal form table caption {
  53. font-weight: bold;
  54. margin-bottom:1em;
  55. }
  56. .modal form table td {
  57. padding:.5em
  58. }
  59. .modal form table td:first-of-type {
  60. width:5em;
  61. }
  62. /* 定位父级 */
  63. .modal-body{
  64. position: relative;
  65. }
  66. .modal .close {
  67. position: absolute;
  68. width:2em;
  69. height: 2em;
  70. top: 1em;
  71. right: 1em;
  72. }
  73. .modal .close:hover{
  74. cursor: pointer;
  75. background-color: #ff0000;
  76. color: #fff;
  77. }
  78. /* 模态框默认隐藏 */
  79. .modal{
  80. display: none;
  81. }

JS代码:

  1. const btn = document.querySelector('header button');
  2. const modal = document.querySelector('.modal');
  3. const close = document.querySelector('.close');
  4. btn.onclick=function(){
  5. modal.style.display ='block';
  6. };
  7. close.onclick=function(){
  8. modal.style.display ='none';
  9. };
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:总结的不错
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post