html - 卡在负责任的弹性盒子上
问题描述
当宽度太小而无法同时显示时,包装 flexbox 会出现问题。这是一个全屏屏幕:显示全屏站点
所以如果减少浏览器宽度会发生以下情况:减少宽度
现在,如果我再次减小宽度,它看起来像这样:比以前减少了 1 毫米
但当然,它应该在它们之间。
body {
background-color: aquamarine;
}
#Wrapper,
body,
html,
main,
nav,
header,
div,
class,
footer {
margin: 0;
padding: 0;
}
main {}
header h1 {
position: relative;
width: 50%;
top: 8vh;
left: 25%;
text-align: center;
margin: 0;
padding: 0;
font-family: 'Bree Serif', serif;
color: deeppink;
}
.Container {
position: absolute;
top: 25%;
left: 30vw;
display: flex;
height: 50%;
width: 40%;
flex-flow: row wrap;
justify-content: space-between;
}
.item {
width: 16em;
background-color: lightslategrey;
}
<link href="https://fonts.googleapis.com/css?family=Bree+Serif" rel="stylesheet">
<div id="Wrapper">
<header>
<nav>
</nav>
<h1>This is a heading and it's extra long to test stuff.</h1>
</header>
<main>
<div class="Container">
<div class="item">
</div>
<div class="item">
</div>
</div>
</main>
</div>
解决方案
我在您的 CSS 上看到了一些问题,这些问题会在您的 box item上强制执行此行为。主要问题是您将容器的宽度限制为 40%,然后当您调整窗口大小时,内部框没有空间正确显示。我会给容器一个 full width: 100% , left: 0和justify-content: center。然后我会为内部项目提供左右边距。
所以你的CSS是这样的:
.Container {
position: absolute;
top: 25%;
left: 0;
display: flex;
height: 50%;
width: 100%;
flex-flow: row wrap;
justify-content: center;
}
.item {
width: 16em;
background-color: lightslategrey;
margin: 0 30px;
}
这部分解决了问题,因为如果您减小窗口大小,您的内框仍然重叠。要真正解决它,您可能需要一个媒体查询来在调整窗口大小时使内框变小。
它可能是这样的:
@media all and (max-width: 650px) {
.item {
width: 8em;
}
}
这是一个 codepen,因此您可以看到结果:https ://codepen.io/annabranco/pen/VEjXOL
推荐阅读
- r - base R 将参数的名称替换为函数调用
- fortran - 如何在do循环的每一步中创建子程序或函数的名称
- remote-access - 远程访问Linux界面
- java - Android 应用程序架构我这样做正确吗?
- regex - vb.net 用正则表达式分割字符串
- ruby-on-rails - RoR:最小错误:预期错误是真实的
- java - 将Java中的文件数据加密到同一个文件中
- python - 来自私有导入的 Python 类型注解(来自 curses)
- airflow-scheduler - 根据来自慰藉队列的慰藉事件触发 Airflow 任务
- angular - 创建带参数的装饰器并访问被装饰的函数参数