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

当文本内容太长时,停止flex子级增长[重复]

锺离伟彦
2023-03-14

我有一个灵活的布局,看起来像这样:

这很好,但是当产品描述很长时,我想隐藏溢出并显示省略号。

有一个类为info container的flex容器,它有两个flex子容器-(30%)和(70%)。右侧的div本身就是一个flex容器。问题是当文本太长时,div会扩展:

HTML是:

<div class="info-container top">
  <div class="left">
    <div class="item-image-container">
      <div class="item-image" > 
        <img height="75" width="75" src="https://static.pexels.com/photos/60597/dahlia-red-blossom-bloom-60597.jpeg" /> 
      </div>
    </div>
  </div>
  <div class="right">
    <h2>
     header
    </h2>

    <div class="product-description">
      product desc stuff product desc stuff stuff product desc stuff stuff 
    </div>
  </div>
</div>

CSS是:

.info-container {
      margin-left: 300px;
      display: flex;
      flex: 0 0 100%;
      flex-direction: row;
      justify-content: center;
      padding-bottom: 20px;
      width: 400px;
      border: 1px red solid;
      padding: 3px;
}

.left {
  font-size: 2.5rem;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  flex: 30%;
}


.right {
  flex: 70%;
}

h2 {
  font-weight: bold;
  min-width:0;
}

.product-description {
  min-width:0;
  font-sixe: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

h2 {
  margin: 0;
}

JSFIDLE在这里。

如果文本太长,我如何确保右div不会展开,而是显示省略号?


共有1个答案

欧阳安晏
2023-03-14

虽然我是flex box的大力支持者,但您在这里使用它似乎并不合适。

  • 你有很多固定宽度的元素(img: 75px,. info容器: 400px
  • 您已经将flex父属性分配给子属性(arive-Contentame-Item

如果使用如此多的固定宽度是这种情况的一个标准,那么您可以通过为您的图像使用一个浮动容器来简化这一点。

简单浮点数示例:

.info-container {
  max-width: 400px;
  border: 1px red solid;
  padding: 3px;
  background: #ddd;
  min-height: 75px;
}

.left {
  float: left;
}

h2 {
  font-weight: bold;
  min-width:0;
  margin: 0;
}

.product-description {
  font-size: 16px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
<div class="info-container top">
  <div class="left">
  <img height="75" width="75" src="https://static.pexels.com/photos/60597/dahlia-red-blossom-bloom-60597.jpeg" /> 
  </div>
  <div class="right">
    <h2>header</h2>
    <div class="product-description">
      Product desc stuff product desc stuff stuff product desc stuff stuff product desc stuff stuff
    </div>
</div>
 类似资料:
  • 我遇到的最后一个问题与这里的链接相同:flexbox项目的宽度被忽略 一切看起来都很好,但在最后一刻,我想更改flex容器的方向,所以我添加了

  • 我有一些遗留代码需要修复,我正在努力解决以下问题: 我有2个嵌套的网格窗格。在内部网格内,必须添加文本。 使用以下函数计算相对于屏幕大小的内网格和外网格的列宽: 网格及其内容通过以下代码添加: 如果我向内部gridPane添加文本,如下所示: 当文本字符串太大而不能放入其单元格时,内网格以及与此内网格一起的外网格将会增长,从而导致整个网格(内网格和外网格)被“拉伸”以放入这些长内容,并在屏幕的右边

  • 我想让flex的孩子渲染,使位于的宽度之下,而不是容器的宽度之下。 显然flex子项不能设置为内联块? 有解决这个问题的方法吗? https://codepen.io/joshuajazleung/pen/EbwZmJ

  • 我有一个基本的两列flexbox布局(侧菜单、标题、主要内容)。 我希望我的侧菜单有一个固定的宽度,但高度增长到整个页面的100%。对于我的主要内容,有一个固定高度的标题和一个动态高度内容窗格,我希望该窗格的背景也能填充100%的可用高度。 如果屏幕的高度足以容纳所有内容,那么一切都会很好 当主要内容超出可用高度并需要滚动时,背景不会一直延伸到页面 看黑色、灰色和控制台窗口之间的交叉点...左侧黑

  • 我已经在Ubuntu14.04中安装了Android studio。我试图清理这个项目,但它花了太长时间,已经1小时了,因为gradle正在运行。在我的Gradle控制台中,我得到了如下错误: 线程“png-cruncher_8”java.lang.runtimeException:在等待从aapt进程时超时,请确保在/home/files/android/sdk/build-tools/23.0

  • 问题内容: 如果该文本对于单元格来说太长了,我想剪掉它,并在末尾添加三个点“ …”(不换行)。问题在于,我不能只在XX符号后剪切java中的内容,因为“ i”占用的空间少于“ W”占用的空间,而这又会显得很傻。 如何使用CSS / java实现此功能(如果没有Java脚本,可能的话)?还是不可能? 谢谢! 问题答案: 尝试CSS:设置a 并指定: