Grid布局宽度自适应中auto-fit和auto-fill的区别

概述

CSS Grid 有个非常强大的功能 —— 模式填充(repeat-to-fill)列然后对内容进行自动布局。也就是说,开发者只需要指定列数,自适应方面的事情(视口尺寸小则显示列数少,反之则多)交给浏览器来处理就行了,不需要用媒体查询。

grid-template-columns: repeat(auto-fit || arto-fill, minmax(320px, 1fr));

以上代码意思是:每个子元素至少需要320px的宽度,如果视口宽度足够宽就分配给每个子元素,如果不够就换行,把分配不了的元素换行。没有子元素占据 (假如没有列间距) 的空间叫剩余空间。比如一行一共100px,两个子元素占据了80px,网格距离10px,那么还有10px的剩余空间。剩余空间的使用却决于使用了auto-fit 还是 arto-fill

实例

Html代码

<div class="big">
        <div class="small"></div>
        <div class="small"></div>
</div>

Css代码

.big{
     max-width: 1200px;
     height: 100%;
     background-color: blueviolet;
     display: grid;
     grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
     /* grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); */
     grid-gap: 20px;
}
.small{
    height: 150px;
    background-color: aquamarine;
}

使用auto-fill

在这里插入图片描述
可以看到剩余空间会保留。

使用auto-fit

在这里插入图片描述
剩余空间会平均分配到子元素宽度中。

总结

使用 auto-fit 时,剩余空间会平均分配给子元素,内容区自动拉伸以便占满一整行;
使用 auto-fill 时,空列和子元素一样,都会其占用行空间,虽然空列没有实质性内容

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
选项 A、设置 grid-auto-rows/columns 属性为 auto-fitauto-fill 可以使用自动布局来填充剩余的空白单元格。 解析: 网格布局Grid Layout)是 CSS3 的一种新的布局模式,可以将一个 HTML 元素的内容划分成一个网格,方便地进行布局和定位。 在网格布局,可以使用 grid-auto-rows 和 grid-auto-columns 属性来设置自动布局的行高和列宽。这两个属性分别控制了网格未被显式定义的行和列的大小。 其grid-auto-rows 属性用于设置自动布局的行高,grid-auto-columns 属性用于设置自动布局的列宽。它们都可以接受以下的值: - auto:表示行高或列宽由内容决定。 - <length>:表示行高或列宽为固定长度。 - minmax(min, max):表示行高或列宽在 min 和 max 之间自动调整。 如果将 grid-auto-rows 或 grid-auto-columns 属性的值设置为 auto-fitauto-fill,就可以使用自动布局来填充剩余的空白单元格。 - auto-fit:表示自动调整网格的行或列数量,以填充整个区域。 - auto-fill:表示自动调整网格的行或列宽度,以填充整个区域。 例如,以下代码使用 grid-auto-rows 和 grid-auto-columns 属性设置了自动布局: ```css .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 100px; grid-auto-columns: 100px; } ``` 在这个例子grid-auto-rows 和 grid-auto-columns 属性的值都被设置为 100px,表示自动布局的行高和列宽都为 100px。如果在网格存在未被显式定义的行或列,它们将会使用自动布局来填充剩余的空白单元格。 因此,本题答案是选项 A、设置 grid-auto-rows/columns 属性为 auto-fitauto-fill。选项 B、使用 grid-gap 属性设置单元格之间的空隙大小、选项 C、使用 grid-template-areas 属性指定单元格的摆放位置都不能使用自动布局来填充剩余的空白单元格。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值