【发布时间】:2023-04-02 18:51:02
【问题描述】:
我在主页上有一个完整的视口宽度、完整的视口高度“英雄形象”。我已经把它做成了一个 Flex 容器。 flex 容器内部是一个子 div(包含一个标题)。这个弹性项目应该与弹性容器的底部对齐。它有一个最大宽度,并且应该在父级内部水平居中。
但是,最大宽度被忽略了。 div 正在获取其内容的宽度 - 标题。请看 JS Fiddle:https://jsfiddle.net/4h7q6d5x/
如您所见,主图内部的 .main div 占用了其内容的宽度 - 与主图下方的 .main div 不同。
我查看了各种问题,包括这个max-width not working on flex item
但是将 width:100% 添加到 flex 项不起作用。在较小的视口尺寸下,宽度和填充不能很好地发挥作用,并且标题从右侧边缘被裁剪。
如何获得 max-width 以使用 Flexbox?
.hero_image {
min-height: 100vh;
background-color:yellow;
display: flex;
flex-direction: column;
justify-content: flex-end;
}
.main {
max-width:500px;
margin:0 auto;
padding:0 50px;
background-color:pink;
}
<div class="hero_image">
<div class="main">
<h1>Heading <br>couple of words</h1>
</div>
</div>
<div class="main">
<p>Lots of content</p>
</div>
【问题讨论】:
-
我在 Mac 上查看 Firefox 和 Chrome 上的 JS Fiddle。英雄图像中的 .main div 占据了标题的宽度。最大宽度被忽略。它应该和它下面的 .main div 一样宽,也就是在主图之外。
-
没关系,你指定了一个max-width属性,但是block占用的比这个少。如果块没有足够的内容来达到那个大小,它总是会更小。如果你想让块占据那 500px,你必须告诉它有
width: 500px -
@Artur Capraro 我希望它的最大宽度为 500 像素。不是 500px 的宽度。 500px 的 max-width 将具有 500px 的宽度(如果视口足够大),即使它的内容只有 1px 宽。
-
max-width 就像@ArturCapraro 所说的那样
-
@Paulie_D 当标题/内容足够长以将 div 推到最大宽度时,它看起来和工作正常。但标题只有 4 个字长,最大宽度被忽略。试试你的 JS Fiddle 只用 4 个字,你就能看到