You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在单行div中实现文本换行(兼容CSS2与dompdf)

问题需求

现有一组模拟表格行样式的div,需确保最后一个div不会超出父容器范围,而是自动换行并保持在行尾位置,且仅可使用CSS2语法。
当前使用display: contents可达成预期效果,但该属性无法兼容PDF生成工具dompdf,因此需要可行的替代方案。


当前实现代码及效果

CSS代码

.foo { width: 50%; white-space: nowrap;}

.foo > div {
  display: inline-block;
  white-space: normal;
}

.a, .b, .c { width: 150px; background: yellow;}
.d { width: auto; }

HTML代码

<div class='foo'>
  <div class='a'>a</div>
  <div class='b'>b</div>
  <div class='c'>c</div>
  <div class='d'>this text is very long it should break into lines</div>
</div>

当前效果:最后一个带长文本的div(.d)被挤到下一行,单独占据整行,未实现跟随前面元素并在行尾自动换行的布局。


预期效果(使用display: contents实现,但不兼容dompdf)

CSS代码

.foo { width: 100%; }

.foo > div {
  float: left;
}

.a, .b, .c { width: 150px; background: yellow; }
.d { width: auto; display: contents;  }
.e { white-space: normal; display: table-cell; }

HTML代码

<div class='foo'>
  <div class='a'>a</div>
  <div class='b'>b</div>
  <div class='c'>c</div>
  <div class='d'>
    <div class='e'>this text is very long is should break into lines</div>
  </div>
</div>

预期效果:前三个黄色块(.a/.b/.c)左浮动排列,最后一个div内的长文本(.e)紧跟在.c之后,自动填充父容器剩余宽度,文本超出时自动换行,不会被挤到下一行单独显示。


内容的提问来源于stack exchange,提问作者greener

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 00:23:18