<!DOCTYPE html><html> <head> <style> * { margin: 0; padding: 0; } .grid { /* 网格布局 */ display: grid; /* 每列每行之间的间距 */ gap: 20px; /* 网格布局列散布,repeat相当于for循环 */ /* grid-template-columns: 1fr 1fr 1fr 1fr; */ grid-template-columns: repeat(4, 1fr); } .grid-item { position: relative; } .grid-item::before { content: ' '; /* 设为块元素,宽度撑满 */ display: block; background-color: blue; /* padding-bottom和padding-top百分比是取的父元素的宽度 */ padding-bottom: 100%; /* 宽度是父元素的宽度,高度是父元素的宽度,而后grid-item被撑成了一个正方形 */ } /* 这中央应用相对定位脱离文档流,left:0,right:0,top:0;bottom:0,浏览器主动计算宽高,撑满整个父元素 ,不应用相对定位,他就排在before前面了*/ .con { position: absolute; top: 0; bottom: 0; left: 0; right: 0; } </style> </head> <body> <div class="grid"> <div class="grid-item"> <div class="con"></div> </div> <div class="grid-item"> <div class="con"></div> </div> <div class="grid-item"> <div class="con"></div> </div> <div class="grid-item"> <div class="con"></div> </div> <div class="grid-item"> <div class="con"></div> </div> </div> </body></html>