Blogger Information
Blog 33
fans 1
comment 0
visits 21831
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
grid实现12列的栅格布局
冰雪琉璃
Original
1352 people have browsed it

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>

    效果图如下:

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