Html 如何使图像保留在css网格容器的行中?

Html 如何使图像保留在css网格容器的行中?,html,image,css,css-grid,Html,Image,Css,Css Grid,下面的代码显示了在中调整窗口大小时的预期行为 Chrome 60和Firefox 55(但不在iOS Safari 10.3中;这很可能是它在Safari中行为不当的另一个问题) html,正文{ 宽度:100%; 身高:100%; 填充:0; 保证金:0; 边界:0; 背景颜色:浅灰色; } .集装箱{ 框大小:边框框; 宽度:100%; 显示:网格; 网格模板柱:1fr 1fr; 网格模板行:重复(3,计算((60vh-12px)/3)); /*网格模板行:1fr 1fr 1fr*/ /*

下面的代码显示了在中调整窗口大小时的预期行为 Chrome 60和Firefox 55(但不在iOS Safari 10.3中;这很可能是它在Safari中行为不当的另一个问题)

html,正文{
宽度:100%;
身高:100%;
填充:0;
保证金:0;
边界:0;
背景颜色:浅灰色;
}
.集装箱{
框大小:边框框;
宽度:100%;
显示:网格;
网格模板柱:1fr 1fr;
网格模板行:重复(3,计算((60vh-12px)/3));
/*网格模板行:1fr 1fr 1fr*/
/*网格模板行:自动*/
高度:60vh;
边框:3倍纯黄色;
填充:3倍;
/*栅极间隙:20px;*/*

我不知道你想让这些图片看起来有多贴身,但你可以使用。
minmax()
允许您设置网格行大小的最小值和最大值。将
自动
设置为最小值,将
设置为33%
设置为最大值,将使网格项尽可能小,并达到网格容器高度的33%,但不会更大。这将使所有网格项保持在60 VH tha最大高度的99%t网格容器占用空间

这并不完全是你希望得到的自动方式…你仍然在声明一个大小,即使它是相对的。它确实避免了看起来笨重的
calc((60vh-12px)/3)
,尽管使用这种方法没有什么错,除非你的帖子中有其他限制

然而,kukkuz的回答和重置
min height
是一个更好的解决方案,这也是我所缺少的

html,正文{
宽度:100%;
身高:100%;
填充:0;
保证金:0;
边界:0;
背景颜色:浅灰色;
}
.集装箱{
框大小:边框框;
宽度:100%;
显示:网格;
网格模板柱:1fr 1fr;
网格模板行:重复(3,最小值(自动,33%);
高度:60vh;
边框:3倍纯黄色;
填充:3倍;
}
.瓷砖{
显示:网格;
}
img{
框大小:边框框;
显示:块;
对象匹配:包含;
宽度:100%;
身高:100%;
保证金:0;
边界:0;
填充:3倍;
}

我不知道您希望这些图像有多贴身,但您可以使用。
minmax()
允许您设置网格行大小的最小值和最大值。将
自动
设置为最小值,将
设置为33%
设置为最大值,将使网格项尽可能小,并达到网格容器高度的33%,但不会更大。这将使所有网格项保持在60 VH tha最大高度的99%t网格容器占用空间

这并不完全是你希望得到的自动方式…你仍然在声明一个大小,即使它是相对的。它确实避免了看起来笨重的
calc((60vh-12px)/3)
,尽管使用这种方法没有什么错,除非你的帖子中有其他限制

然而,kukkuz的回答和重置
min height
是一个更好的解决方案,这也是我所缺少的

html,正文{
宽度:100%;
身高:100%;
填充:0;
保证金:0;
边界:0;
背景颜色:浅灰色;
}
.集装箱{
框大小:边框框;
宽度:100%;
显示:网格;
网格模板柱:1fr 1fr;
网格模板行:重复(3,最小值(自动,33%);
高度:60vh;
边框:3倍纯黄色;
填充:3倍;
}
.瓷砖{
显示:网格;
}
img{
框大小:边框框;
显示:块;
对象匹配:包含;
宽度:100%;
身高:100%;
保证金:0;
边界:0;
填充:3倍;
}

您可以使用
网格模板行:1fr 1fr 1fr
,更重要的是,您必须重置网格项的
min width
min height
值,默认值为
auto
(与内容相同)

要为网格项提供更合理的默认最小大小,请执行以下操作: 规范定义了最小宽度/最小高度的自动值 将指定轴上的自动最小尺寸应用于栅格项目 其溢出是可见的,并且至少跨越一个磁道,其最小 轨道大小调整功能是自动的。(效果类似于 弹性物品的自动最小尺寸。)

资料来源:

这类似于FlexBox的自动flex项规则。请参阅下面的演示,其中我将它们重置为零:

html,正文{
宽度:100%;
身高:100%;
填充:0;
保证金:0;
边界:0;
背景颜色:浅灰色;
}
.集装箱{
框大小:边框框;
宽度:100%;
显示:网格;
网格模板柱:1fr 1fr;
网格模板行:1fr 1fr 1fr;
高度:60vh;
边框:3倍纯黄色;
填充:3倍;
/*栅极间隙:20px;*/*

您可以使用
网格模板行:1fr 1fr 1fr
,更重要的是,您必须重置网格项的
min width
min height
值,默认值为
auto
(与内容相同)

要为网格项提供更合理的默认最小大小,请执行以下操作: 规范定义了最小宽度/最小高度的自动值 将指定轴上的自动最小尺寸应用于栅格项目 其溢出是可见的,并且至少跨越一个磁道,其最小 轨道大小调整功能是自动的。(效果类似于 弹性物品的自动最小尺寸。)

资料来源:

这类似于FlexBox的自动flex项规则。请参阅下面的演示,其中我将它们重置为零:

html,正文{
宽度:100%;
身高:100%;
填充:0;
保证金:0;
边界:0;
背景颜色:浅灰色;
}
.集装箱{
框大小:边框框;
宽度:100%;
显示:网格;
网格模板柱:1fr 1fr;
网格模板行:1fr 1fr 1fr;
高度:60vh;