Html 如何使图像保留在css网格容器的行中?
下面的代码显示了在中调整窗口大小时的预期行为 Chrome 60和Firefox 55(但不在iOS Safari 10.3中;这很可能是它在Safari中行为不当的另一个问题)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*/ /*
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;