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

flex布局下如何让同一div内的指定span元素换行显示?

解决Flex布局下文本换行问题

你的问题出在所有子元素都是flex容器的直接子项,在flex布局默认的flex-direction: row下,.annual和.price会被当作两个独立的横向项排列,自然处于同一行。要实现它们上下换行的效果,需要把这两个span包裹在一个子容器里,让这个子容器成为flex项,内部再设置垂直布局。

修正后的HTML代码

<div class="priceinfo">
        <img src="order-summary-component-main/images/icon-music.svg" />
        <div class="plan-details">
            <span class="annual">Annual plan</span>
            <span class="price">&#x24; 59.99/year</span>
        </div>
        <a class="change" href="">Change</a>
</div>

修正后的CSS代码

.priceinfo {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem; /* 可选:给元素之间添加间距,优化视觉效果 */
}

.plan-details {
  display: flex;
  flex-direction: column;
  /* 若需要价格文本左对齐,可添加 align-items: flex-start; */
}

补充说明

  • 新增的.plan-details容器通过flex-direction: column让内部两个span垂直排列,自动实现换行效果。
  • 保留.priceinfo的align-items: center,可以让中间的文本区域和图片、Change按钮保持垂直居中对齐,匹配设计图的视觉要求。
  • gap属性可以快速给flex项之间添加均匀间距,比手动设置margin更简洁可控。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:10:27