当前位置: 首页 > 知识库问答 >
问题:

Max-width不对Flexbox项起作用(项正缩小到内容的宽度)

华章横
2023-03-14

我有一个全视区宽度,全视区高度的“英雄形象”在一个主页。我做了一个柔性容器。flex容器中有一个子div(包含一个标题)。此flex项目应与flex容器的底部对齐。它有一个最大宽度,应该在父级内部水平居中。

但是,max-width将被忽略。div取其内容的宽度--标题。请参阅JS Fiddle:https://jsfidle.net/4h7q6d5x/

正如您所看到的,英雄图像内部的.main div采用了其内容的宽度--不像英雄图像下面的.main div。

我已经研究了各种问题,包括这个max-width不适用flex项目

但是将width:100%添加到flex项并不起作用。在较小的视区尺寸下,宽度和填充不能很好地发挥,标题被裁剪掉了右手边。

如何使用FlexBox获得max-width?

.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>

共有1个答案

诸葛皓
2023-03-14

flex-containers中的默认“宽度”(实际上是flex-basis)是auto,这使得它的宽度与内容的宽度一样大。

但是将width:100%添加到flex项并不起作用。在较小的视区尺寸下,宽度和填充不能很好地发挥,标题被裁剪掉了右手边。

那我建议做几个改动。不要使用flex-column,而是使用align-items:flex-end定位.maindiv。

然后用flex:1设置默认的“width”(实际上是flex-grow)。

null

.hero_image {
  min-height: 50vh;
  /* for example */
  background-color: yellow;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.main {
  flex: 1;
  max-width: 50%;
  /* for example */
  margin: 0 auto;
  padding: 0 50px;
  background-color: pink;
}
html lang-html prettyprint-override"><div class="hero_image">
  <div class="main">
    <h1>Heading <br>couple of words</h1>
  </div>
</div>

<div class="main">
  <p>Lots of text</p>
</div>
 类似资料:
  • 我有一个用于标题导航的Flexbox,徽标向左对齐,ul项目向右对齐,就像传统样式一样。徽标和导航链接都是全宽Flexbox中的flex项目,我给了它们两个flex:50%。导航链接部分也是一个Flexbox(内部Flexbox),用于防止菜单堆叠,而不是以更好的响应方式运行。 当我将“对齐内容”应用于该内部Flexbox时,链接没有任何更改,就好像存在替代样式或该属性在内部文本框上不起作用一样。

  • 问题 阻止类似按钮的内容会导致我的flex项目展开并溢出flexbox容器。 预期行为 在本例中,按钮应与按钮文本并排,并用省略号隐藏。flex项的宽度应基于兄弟项而非内容,并在容器更改宽度和添加或删除flex项时保持在容器内的响应性。另一个警告是,对于我的特定场景,我不能在flex项或buttons父div上使用overflow:hidden。 这是小提琴手。 例Html 示例CSS 编辑:现在

  • 问题内容: 我试图制作一个导航内联列表。您可以在这里找到它 由于某些原因,它不显示LI的宽度和高度。这是代码段。这有什么问题? 问题答案: 将元素声明为,并从元素中删除宽度和高度。 或者,将a 应用于元素并在该元素上使用。这与跨浏览器更加兼容,例如Firefox <= 2不支持。 如果您将元素的宽度设置为100%(以使其从左边缘到右边缘跨越),然后应用apply,则第一种方法将使您拥有一个动态居中

  • 我正在使用flexbox布局将三个div定位在一列中,以便每个div具有相同的高度。如果每个div的内容太大,则会显示滚动条。我希望每一节只扩展到其内容的高度,但目前发生的情况是,每一节总是相同的高度,而不管其中的内容如何。 如果容器是900px,则每个节应该是300px,如果一个节的内容超过300px高,则应该出现滚动条。但是,如果lets的内容说中间的部分只有100px高,那部分应该只有100

  • 我有一个容器 ,其中 。它有一个子 。 怎样才能让孩子显得“内联”呢? 具体地说,我如何使孩子的宽度由它的内容决定,而不是扩展到父母的宽度? 我所尝试的: 我将子项设置为,但它仍然占用了整个宽度。我也尝试了所有其他显示属性,但都没有效果。 示例: null null http://codepen.io/donpinkus/pen/ygrxry 共2个答案 匿名用户 在容器上使用或在弹性项上使用。

  • 我有一个带有listview的片段,它的适配器包含两种类型的单元格(取决于位置)。 列表中的第一个单元格应该是自定义视图(按钮,ViewPager,CirclePageSignator),第一个单元格宽度match_parent 第二个单元格也是自定义视图,其中包含按钮和图像视图。 我的问题是,当我放置ViewPager时,在第一个单元格中看不到ViewPager。宽度以包装内容或填充父对象或匹配