html - 带有固定元素的响应列
问题描述
我正在尝试创建一组列,使用 css 从三列优雅地降级为一列。通常我会这样做,但要求是每列中的项目应保持固定大小,并且列之间应始终保持 16px 的间距。
这是我正在寻找的:
但是,当我向列添加宽度属性时,它们之间的间距会变得更大。我对如何在屏幕更改大小时保持列相同感到困惑。我知道不可避免地越小,我将不得不使用媒体查询更改列宽,以使它们变成两列,然后变成一列,所以这不是问题。
哦,当然,这是代码,还有一个codepen 链接。我建议使用 SO 编辑器全屏运行它,因为我没有做过任何响应式 css,所以这些列只是浓缩成一个大块,很难看到发生了什么。
body {
margin: 0;
padding: 40px;
}
.row {
display: flex;
}
.tile {
width: 300px;
height: 300px;
background-color: #ddd;
margin-right: 8px;
margin-left: 8px;
}
.col {
width: 33.33%;
}
<div class="row">
<div class="col">
<div class="tile"></div>
</div>
<div class="col">
<div class="tile"></div>
</div>
<div class="col">
<div class="tile"></div>
</div>
</div>
解决方案
我认为这就是最终样式的样子:
body {
margin: 0;
padding: 40px;
}
.row {
display: flex;
justify-content: center;
gap: 16px;
}
.tile {
width: 300px;
height: 300px;
background-color: #ddd;
}
我还在这里编辑了codepen https://codepen.io/tobycodes/pen/xxrEgje。
诀窍是justify: center;
和gap: 16px;
。您可以在此处阅读有关该gap
属性的更多信息:https ://developer.mozilla.org/en-US/docs/Web/CSS/gap 。该属性是grid-gap
flexbox 的简写,但非常适合。
推荐阅读
- python - 无法从 angel.co 网站抓取所有数据
- python-3.x - 无法在 Python 3 中从 S3 读取 PNG 文件?
- php - wkhtmltopdf - html 到 pdf 删除左边和底部的空白
- c - 不能将 'const void *' 转换为 'struct struct_name*'
- angular - 使用反应形式将表单字段动态添加到角度无法正确呈现?
- flutter - 我无法为颤动设置路径
- android - 长按 ListActivity 的元素后创建上下文菜单
- python-3.x - 我想从我的代码中删除 PyAutogui 库并使用 Pynput 库
- html - 隐藏元素的奇怪类命名
- javascript - 通过数组映射但未正确呈现