css - Flex 响应式最大宽度,中间有空格
问题描述
我正在添加 3 个最大宽度为 400 像素的列,并使用space-between
.
.wrap {
display: flex;
flex-wrap: wrap;
align-content: stretch;
justify-content: space-between;
}
.item {
width: 100%;
max-width: 400px;
}
当我缩小屏幕尺寸时,项目没有响应。他们只是在彼此下方坍塌。如果我删除flex-wrap
,我开始每行获得超过 3 列,并且它们低于 400 像素。
如何在 flex 中获得 3 个带有空格的响应列?
不能使用宽度百分比,因为项目之间的空间必须在任何屏幕尺寸下看起来都相同。
解决方案
width: 100%
如果你不希望它们占据父元素的整个宽度,你应该放弃。而且由于您在父级上使用 flex ,因此您不妨在子级上使用 flex 属性并拥有这些:
.item {
flex-basis: 33%; /* <-- Added in lieu of the width */
max-width: 400px;
margin: 0px 5px; /* <-- Added to give left/right margins */
}
如果您的父母中只有这 3 个孩子,那么您也可以这样做:
.item {
flex-grow: 1; /* <-- Lets them grow equally */
flex-shrink: 1; /* <-- Lets them shrink equally. OPTIONAL as 1 is the default */
max-width: 400px;
margin: 0px 5px; /* <-- Added to give left/right margins */
}
最后一个的简写是这样的:
.item {
flex: 1; /* <-- Lets them grow/shrink equally */
max-width: 400px;
margin: 0px 5px; /* <-- Added to give left/right margins */
}
此外,如果父项中只有这 3 个子项,则如果您不希望子元素包装,则可能需要flex-wrap: wrap;
从中删除。.wrapper
在这种情况下不会发生,因为孩子的宽度百分比加起来是 100%。但这可能会令人困惑,并且与您的意图相矛盾。
推荐阅读
- aws-cdk - 使用 AWS-CDK 的 Elastic Beanstalk 比资源级别更高
- python - 是否有命令行工具可以自动设置我的 python 包并将其上传到 PyPi?
- docker - 为什么在 docker build 命令中使用 -f
- javascript - 将数据传递给与任何组件无关的纯 HTML 模板文件
- ansible - 无法使用 ansible-playbook 更新 xml 元素值
- javascript - 当传递返回 es6 字符串的函数时,Angular - ngStyle 返回 [object Object]
- ios - NSUserDefault Value 发现 nil 并杀死应用程序
- r - 通过相当讨厌的大型空间多边形数据框裁剪表面多边形
- java - 使用 Google SafetyNet 检查设备根状态
- c++ - bash:./main:无法执行二进制文件:执行格式错误