html - 如何使网格行占据全高直到达到最小尺寸?
问题描述
我有一个最小高度为 90vh 的 div 和一个子 div,它设置为一个网格,最多 20 个子元素和 5 个等宽的列。我想设置一个网格,这样:
- 当它有 =< 4 行时,它们应该占据整个最小高度。因此,如果有 4 行,每行应占高度的 25%,3 (33%)、2 (50%) 和 1 (100%) 行也是如此。
- 当它有 > 4 行并且屏幕宽度超过 600 像素时(例如,当列数在较小的屏幕上下降时),每行占用其原始高度的 25% (22.5vh)
- 在较小的屏幕上,每行应占用原始最小高度 (11.25vh) 的 12.5%
我想知道是否可以设置这样的网格。
我到目前为止的代码(我正在使用样式组件):
const ColorBoxesWrap = styled.div`
min-height: 90vh;
width: 100%;
`;
const ColorBoxesGrid = styled.div`
display: grid;
grid-auto-rows: 11.25vh;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
@media (min-width: 1200px) {
grid-template-columns: repeat(5, 1fr);
}
@media (min-width: 500px) {
grid-auto-rows: 22.5vh;
}
`;
零件:
...
<ColorBoxesWrap>
<ColorBoxesGrid>{colorBoxes}</ColorBoxesGrid>
</ColorBoxesWrap>
...
此代码适用于 15 个以上的孩子,可根据需要进行缩放和缩小。但是,对于 =< 15,行仍然只占最小高度的 25%。
解决方案
答案基本上说明了一切,这是我最后得到的代码:
const ColorBoxesWrap = styled.div`
min-height: 90vh;
width: 100%;
`;
const ColorBoxesGrid = styled.div`
display: grid;
grid-auto-rows: 11.25vh;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
@media (min-width: 500px) {
grid-auto-rows: minmax(22.5vh, ${(props) => `${90 / Math.ceil(props.colorsCount / 2)}vh`});
}
@media (min-width: 750px) {
grid-auto-rows: minmax(22.5vh, ${(props) => `${90 / Math.ceil(props.colorsCount / 3)}vh`});
}
@media (min-width: 1000px) {
grid-auto-rows: minmax(22.5vh, ${(props) => `${90 / Math.ceil(props.colorsCount / 4)}vh`});
}
@media (min-width: 1200px) {
grid-template-columns: repeat(5, 1fr);
grid-auto-rows: minmax(22.5vh, ${(props) => `${90 / Math.ceil(props.colorsCount / 5)}vh`});
}
`;
...
<ColorBoxesWrap>
<ColorBoxesGrid colorsCount={colorsCount}>
{colorBoxes}
</ColorBoxesGrid>
</ColorBoxesWrap>
...
所有的媒体查询都是这样设置的,我可以知道它什么时候结束。单元要求 Minmax 不小于 22.5vh。所有@media 重复可能不是最好的解决方案,但它确实有效。希望这对某人有帮助!
推荐阅读
- android - EditText ,输入的文本不完整可见
- sql - 为特定数据库运行 .sql 脚本
- javascript - 使用 javascript XMLHttpRequest 将数据(图像和其他一些参数)发送到 php
- gcloud - 部署到 gcloud 会产生可怕的构建错误
- bash - 检查bash中文件名的最后一个字符
- python - 对导入模块感到困惑。模块不是从同一文件夹中导入的||?
- python - Tensorflow cuDNN 模型执行的延迟问题
- r - JSON 解析错误:字符串被截断
- python-2.7 - 如何在 Windows 上准确安装 pip,尤其是处理命令提示符的部分?
- wordpress - 购物车上的 Woocommerce 价格错误