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

如何用CSS实现容器自适应换行后的文本宽度?

问题:让容器宽度适配换行后文本,且两个盒子宽度一致(无需JS实现)

默认情况下,文本换行时容器宽度会变为设置的最大宽度。我希望容器宽度能适配换行后的文本,并且在以下示例中让两个盒子宽度相同,能否不使用JS实现?

原示例代码

CSS

div {
  border: 1px solid red;
  max-width: 100px;
  display: inline-block;
}

HTML

<div>
qwertyuiop 
</div>
<div>
qwertyuiop qwertyuiop 
</div>

补充说明

本问题与flexbox无关,并非重复问题《Make container shrink-to-fit child elements as they wrap》。


解决方案

可以实现,无需JavaScript。以下是两种可行方案:

方案一:借助父容器收缩特性

通过父容器的inline-block特性让其宽度由子元素的最大宽度决定,再让子元素继承父容器宽度实现同宽:

/* 新增父容器样式 */
.box-group {
  display: inline-block;
}
.box-group div {
  border: 1px solid red;
  max-width: 100px;
  width: 100%;
  display: block;
}
<div class="box-group">
  <div>
    qwertyuiop 
  </div>
  <div>
    qwertyuiop qwertyuiop 
  </div>
</div>

方案二:利用CSS min-content和flex对齐

通过min-content让容器宽度适配换行后的文本实际宽度,再用flex父容器让子元素自动对齐宽度:

.box-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.box-group div {
  border: 1px solid red;
  width: min-content;
  max-width: 100px;
}
<div class="box-group">
  <div>
    qwertyuiop 
  </div>
  <div>
    qwertyuiop qwertyuiop 
  </div>
</div>

两种方案都能让两个盒子宽度一致,且容器宽度会适配换行后的文本(不会直接拉满max-width,而是取换行后每行的实际宽度,同时不超过设置的max-width上限)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:06:16