博客列表 >定位布局的概念与实例

定位布局的概念与实例

xueblog9的进阶之旅
xueblog9的进阶之旅原创
2022年07月12日 18:04:35548浏览

定位布局的概念与实例

  1. 概念:
    1.1 块(display-block):矩形盒子-合模型,例:/table/table-cell,td/list-item/form/p/h1-h6/,边距均有效,宽:占用父级宽度的100%,高:内容来定,均可自定义;
    1.2 内联/行内(display-inline):用来描述元素内部的内容/文本(span),上下边距无效,宽高:内容来定,均可自定义,可通过display转换内联为块(block),内联块(inline-block)并拥有对应的属性,其中内联块为水平排列,且宽高为内联属性,边距为块属性;

  2. 静态定位:元素position属性定义为static,默认值,文档流布局;
    2.1 盒子大小-高:内容来定,宽:占用父级元素宽度的100%;
    2.2 html默认的文档流布局,块-按照垂直排列,内联(块):按照水平排列

  3. 相对定位:元素position属性定义为relative;
    3.1 盒子大小-高:内容来定,宽:占用父级元素宽度的100%,可定义;
    3.2 不需求定位父级,直接以直属父级元素定位;
    3.3 位置相对于直属父级元素定位,与其他标签无关;

  4. 绝对定位:元素position属性定义为absolute;
    4.1 盒子大小取决于文本大小,可定义;
    4.2 需求定位父级(position属性定位为static之外的属性的父级,一般定义为relative);
    4.3 位置相对于定位父级进行变化,与其他标签无关;
    4.4 定位父级顺序:父级—>body标签—>html标签—>视口,除了视口,其他父级标签,均需定义position属性为relative/absolute/fixed之中任何一种即可,否则无法作为定位父级使用;
    4.5 相对于视口定位时,则与固定定位无差别;

  5. 固定定位:元素position属性定义为fixed
    5.1 盒子大小取决于文本大小,可定义;
    5.2 不需求定位父级;
    5.3 永远相对视口定位;

  6. 粘性定位:元素position属性定位为sticky
    6.1 盒子大小-高:内容来定,宽:占用父级元素宽度的100%,可定义;
    6.2 不需求定位父级;
    6.3 位置相对于直属父级元素定位,与其他标签无关;
    6.4 根据top,bottom设置(注:right,left对粘性定位无效),同类元素决定定位在哪里,并通过背景色达到覆盖效果;

实例:

html源码

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>布局总结与案例</title>
  8. </head>
  9. <body>
  10. <div class="boxgrandpa">这是爷爷
  11. <div class="boxfather">这是爸爸
  12. <div class="box1">这是案例1</div>
  13. <div class="box2">这是案例2</div>
  14. <div class="box3">这是案例3</div>
  15. </div>
  16. </div>
  17. <div>
  18. <h1 class="text" style="background-color: yellow;">标题1</h1>
  19. <p>这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4</p>
  20. <h1 class="text" style="background-color: red;">标题2</h1>
  21. <p>这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4</p>
  22. <h1 class="text" style="background-color: blue">标题3</h1>
  23. <p>这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4这个案例4</p>
  24. </div>
  25. <style>
  26. .boxgrandpa {
  27. border: 2px solid #000;
  28. background-color: yellow;
  29. width: 450px;
  30. height: 450px;
  31. font-size: 30px;
  32. box-sizing: border-box;
  33. }
  34. .boxfather {
  35. border: 2px solid #000;
  36. background-color: aqua;
  37. width: 400px;
  38. height: 400px;
  39. font-size: 30px;
  40. box-sizing: border-box;
  41. }
  42. div div div {
  43. border: 2px solid blue;
  44. }
  45. body {
  46. position: relative;
  47. margin: auto;
  48. border: 1px solid black;
  49. top: 20px;
  50. width: 500px;
  51. height: 500px;
  52. }
  53. html {
  54. margin: auto;
  55. border: 1px solid red;
  56. width: 600px;
  57. height: 600px;
  58. }
  59. .box1 {
  60. /* 相对定位 */
  61. position: relative;
  62. top: 200px;
  63. left: 50px;
  64. }
  65. .box2 {
  66. /* 绝对定位 */
  67. position: absolute;
  68. top: 0px;
  69. left: 150px;
  70. }
  71. .box3 {
  72. /* 固定定位 */
  73. position: fixed;
  74. top:0;
  75. left: 0;
  76. }
  77. body > div:nth-of-type(2) {
  78. width: 300px;
  79. height: 300px;
  80. margin: auto;
  81. border: 1px solid violet;
  82. background-color: aquamarine;
  83. overflow: auto;
  84. }
  85. body > div:nth-of-type(2) > h1 {
  86. /* 粘性定位 */
  87. position:sticky;
  88. top:0px;
  89. }
  90. </style>
  91. </body>
  92. </html>

效果展示

这是案例1:相对定位-相对父级进行定位,父级并没有定义为定位父级;
这是案例2:绝对定位-相对”这是爷爷”块进行定位,”这是爷爷”块被定义为定位父级;
这是案例3:固定定位-相对视口进行定位,与其他元素无任何关系
这是案例4:粘性定位-top:0px,则定位在父级元素上方不动,随着滚动条滑动,同类元素都定位至需求位置,通过背景色完成覆盖效果

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