💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] >[success] # grid布局 ![](https://img.kancloud.cn/ee/d1/eed19062cda82a7fb1b66f21feb85219_1920x329.png) 我们在开发中,如果想实现像上面的这种 **一行指定个数盒子 ,超过指定个数换行** ,写起来很麻烦,如果用 **浮动布局** 还要 **计算每个盒子左右** 的 **margin 间距** ,用 **flex布局** 还无法实现 **每行指定个数元素,超出个数换行的布局** ,然而这一切用 **grid 布局很好实现** ,下面使用 **grid布局** 来是实现一下: **index.html** ~~~ <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title></title> <style> .box { display: grid; /* fr是grid专有得写法 */ /* grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; */ /* 等同上面的写法 */ grid-template-columns: repeat(6, 1fr); /* 列间距(每列左右的间距) */ /* column-gap: 12px; */ /* 行间距(每行上下的间距) */ /* row-gap: 12px; */ /* 简写 */ gap: 12px; } .box div { background-color: red; text-align: center; } </style> </head> <body> <div class="box"> <div>1</div> <div>1</div> <div>1</div> <div>1</div> <div>1</div> <div>1</div> <div>1</div> <div>1</div> <div>1</div> <div>1</div> <div>1</div> <div>1</div> </div> </body> </html> ~~~ 也就是说只需要这 **3行代码** 就可以实现 ~~~ display: grid; // 启用grid布局 grid-template-columns: repeat(6, 1fr); // 每行展示6个盒子,每个盒子的距离是1fr,这个fr是grid的单位,跟 flex 布局的 flex:1有点相似 gap: 12px; // 每个盒子的 margin 间距 ~~~