css - 如果下一个元素被隐藏,如何使网格项拉伸到全宽?
问题描述
伙计们。我试图理解 CSS Grid 并发现了一种我认为很简单但结果有点复杂的行为。我需要遵循 12 列布局,其中一行有 2 个元素,但如果它是单个元素,我需要这些元素填充 100% 的宽度。
我尝试使用自动调整,它几乎完成了这项工作,但我找不到以这种方式显式设置 12 列的方法。
这是我的代码片段:
<div class="autofit">
<div class="content"></div>
<div class="banner"></div>
</div>
.autofit {
display:grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
grid-gap: 20px;
text-align: center;
}
.autofit .content{
grid-column: 1/9;
}
.autofit .banner {
grid-column: 10/-1;
}
这样网格按预期工作,但如果我删除 .banner 元素,则 .content 不会拉伸以填充可用空间):
解决方案
用于:only-child
定义和额外的规则:
.autofit {
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
grid-gap: 20px;
text-align: center;
margin:5px;
}
.autofit > *{
height:20px;
}
.autofit .content {
grid-column: 1/9;
background:red;
}
.autofit .banner {
grid-column: 10/-1;
background:blue;
}
.autofit > :only-child{
grid-column: 1/-1;
}
<div class="autofit">
<div class="content"></div>
<div class="banner"></div>
</div>
<div class="autofit">
<div class="content"></div>
</div>
<div class="autofit">
<div class="banner"></div>
</div>
推荐阅读
- reactjs - React Native TextInput:是否有可能让 TextInput 在 iOS 上像 Android 一样移出键盘?
- php - 如何在 Wordpress 中解析微数据?
- c# - 尝试解析跨存储引用时,无法解析目标主体的 SID。错误代码是 1788
- python - 检查列是否包含nan,剪切并粘贴到下一列
- flutter - 如何在颤动的有状态小部件中存储一个值并将其递增?
- javascript - Prisma:有没有办法将 javascript 作为 prisma 数据类型的默认值执行?
- reactjs - 如何将接口分配给 const
- c++ - 如何创建简单的 C++ 代码,在没有数据执行保护 (DEP) 的情况下运行良好,但在 DEP 开启时会崩溃?
- netcdf - python xarray open_dataset 无法读取第二个、第三个或更多 nc 文件
- javascript - 避免在发布请求中重定向