Max*_*ton 1 html css sass flexbox
我使用 Flex 时的边距出现了一些意外的行为,我需要一些帮助来理解原因。
我有一些简单的 html,如下所示:
<div className="dashboard">
<div className="dashboard__inner-container">Inner Container</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我的 scss 文件如下所示:
.dashboard {
text-align: center;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
flex: 1 1 auto;
background-color: #f4f6f8;
}
.dashboard__inner-container {
display: flex;
flex-direction: column;
background-color: #ffffff;
flex: 1 1 auto;
width: 100%;
margin: 100px 50px;
}
Run Code Online (Sandbox Code Playgroud)
我期望的是内部容器将完全填满父容器,顶部和底部减去 100px,左右减去 50px。垂直边距按预期工作,但水平边距实际上延伸到父 div 之外,因此内部容器看起来仍然占据了父 div 的整个宽度。
我不确定这是否与 Flexbox 有关。
这是一个孤立的 CodePen https://codepen.io/MaxMillington2/pen/EQWZoj
当align-items: center与column方向一起使用时,该项目将折叠到其内容宽度,而不是默认的 ,stretch这使其填充其父级的宽度。
此外,当设置width: 100%为 时inner,它将覆盖默认值stretch,这将使项目成为父级宽度+边距的 100%。
为了获得预期的输出,请删除和上的align-items: center内容。outerwidth: 100%inner
堆栈片段
html {
height: 100%;
overflow: auto;
}
.outer {
display: flex;
justify-content: center;
flex-direction: column;
background-color: #f4f6f8;
height: 100%;
}
.inner {
display: flex;
flex-direction: column;
background-color: #ffffff;
flex: 1 1 auto;
text-align: center;
margin: 100px 80px;
}Run Code Online (Sandbox Code Playgroud)
<div class='outer'>
outer
<div class='inner'>
inner
</div>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3102 次 |
| 最近记录: |