如何优化CSS Grid布局中子元素排列和宽度问题?
问题1:无法控制box1中li的布局
box1设置了grid-template-columns: repeat(auto-fill, 20%),这意味着容器将自动填充尽可能多的20%宽度的列。当li数量大于5时,它们会在多行显示。要解决此问题,可以使用auto-fit关键字:
grid-template-columns: repeat(auto-fit, calc((100% - 4 * 20px) / 5));
这将自动计算每个li的宽度,以确保它们都可以在一行中显示。
问题2:box2中li的宽度根据li数量动态调整
box2设置了grid-template-columns: auto auto auto auto auto,这意味着容器将创建5列,每列的宽度根据其内容自动调整。当li数量小于5时,剩余列的宽度将增加。要解决此问题,可以使用固定宽度:
grid-template-columns: repeat(5, 1fr);
这将确保所有列宽度相同,即使li数量少于5。