PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

博客列表 > grid实现12列的栅格布局

grid实现12列的栅格布局

冰雪琉璃
冰雪琉璃 原创
2021年04月06日 14:25:32 1298浏览

Grid利用fr实现栅格12列布局

12列的栅格布局

原理

  • 栅格布局原理:栅格布局其实就是把一个区域等分为多少部分,利用fr单位来实现等分,某个区域来进行调用几分之几。
    假设我将一个区域等分为12份。然后左边我想要10份 右侧我想要2份,就可以利用栅格布局来快速实现这个功能。
  • 实现
    这里我们为了实现栅格布局,要用到相对单位fr。(不一定适用fr来实现栅格布局)

fr:剩余空间分配数。fr单位被用于在一系列长度值中分配剩余空间,如果多个已指定了多个部分,则剩下的空间根据各自的数字按比例分配。
简单来说fr就是讲剩余空间等比例划分,然后将剩余空间按照一定的比例分给容器。

  1. grid-template-columns: repeat(11, 1fr);

效果图如下:

  1. 等分为11份,一共是12份。

    栅格布局实现三行三列

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>12列实现栅格布局</title>
    6. <style type="text/css">
    7. .container{
    8. display: grid;
    9. min-width: 90vw;
    10. gap: 0.5em;
    11. border: 1px solid #ccc;
    12. }
    13. .item{
    14. background-color: green;
    15. gap:.5em;
    16. }
    17. /*将行转化为grid布局,从而使row里面的item成为容器的子元素*/
    18. .container >.row {
    19. /* 将容器container转为grid */
    20. display: grid;
    21. /* 创建网格模版:并利用fr等分 */
    22. grid-template-columns: repeat(12, 1fr);
    23. /* 考虑到页眉和页脚各占1行,主体和侧边1行,所以还要划分出三行出来 */
    24. gap: 0.5em;
    25. min-height: 3em;
    26. }
    27. /* 设置每个可以引用的变量,共12个 */
    28. .col-12 {
    29. /* 跨12列 */
    30. grid-column: span 12;
    31. }
    32. .col-11 {
    33. /* 跨11列 */
    34. grid-column: span 11;
    35. }
    36. .col-10 {
    37. /* 跨10列 */
    38. grid-column: span 10;
    39. }
    40. .col-9 {
    41. /* 跨9列 */
    42. grid-column: span 9;
    43. }
    44. .col-8 {
    45. /* 跨8列 */
    46. grid-column: span 8;
    47. }
    48. .col-7 {
    49. /* 跨7列 */
    50. grid-column: span 7;
    51. }
    52. .col-6 {
    53. /* 跨6列 */
    54. grid-column: span 6;
    55. }
    56. .col-5 {
    57. /* 跨5列 */
    58. grid-column: span 5;
    59. }
    60. .col-4 {
    61. /* 跨4列 */
    62. grid-column: span 4;
    63. }
    64. .col-3 {
    65. /* 跨3列 */
    66. grid-column: span 3;
    67. }
    68. .col-2 {
    69. /* 跨2列 */
    70. grid-column: span 2;
    71. }
    72. .col-1 {
    73. /* 跨1列 */
    74. grid-column: span 1;
    75. }
    76. .container>.row:nth-of-type(2){
    77. min-height: 60em;
    78. }
    79. </style>
    80. </head>
    81. <body>
    82. <div class="container">
    83. <!-- 页眉 -->
    84. <div class="row">
    85. <div class="item col-12">header</div>
    86. </div>
    87. <!-- 主体 -->
    88. <div class="row">
    89. <div class="item col-2">left-aside</div>
    90. <div class="item col-8">main</div>
    91. <div class="item col-2">right-aside</div>
    92. </div>
    93. <!-- 页脚 -->
    94. <div class="row">
    95. <div class="item col-12">footer</div>
    96. </div>
    97. </div>
    98. </body>
    99. </html>

    效果图如下:

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