讲师中心 微信公众号
AI工具推荐 视频效率加速

怎样在Bootstrap5中用CSS精确限制长文本标题的最大行数并截断?

夜芳酱_9576

夜芳酱_9576

发布时间:2026-11-07 12:07:27

|

390人浏览过

|

来源于php中文网

原创

.text-truncate仅支持单行截断,因其依赖white-space: nowrap;多行截断必须用-webkit-line-clamp,且需同时满足display: -webkit-box、-webkit-box-orient: vertical、-webkit-line-clamp、overflow: hidden四条件。

怎样在bootstrap5中用css精确限制长文本标题的最大行数并截断?

不能靠 .text-truncate,它只认单行;多行截断必须手动组合 -webkit-line-clamp,且四条规则缺一不可。

为什么 .text-truncate 加在标题上没反应?

它本质是 white-space: nowrap + overflow: hidden + text-overflow: ellipsis 的封装——white-space: nowrap 直接锁死单行逻辑,和多行截断互斥。哪怕你给 <h2></h2> 或 <div> 加了这个类,只要内容换行了,省略号就永远不会出现。 <ul> <li>浏览器会按 CSS 层叠规则丢弃冲突声明,比如你再加 <code>-webkit-line-clamp: 2,white-space: nowrap 会让文本压成一行,-webkit-line-clamp 失效

  • Bootstrap 官方明确不支持多行场景,这不是 bug,是设计边界
  • 常见误操作:在响应式 flex 容器里直接套 .text-truncate,结果因父容器未设 min-width: 0 或宽度约束,整个截断链路崩掉
  • 用 -webkit-line-clamp 实现 2 行/3 行精确截断

    这是目前唯一能在 Chrome、Safari(17+)、Edge 中稳定显示省略号的原生方案,但必须同时满足四个条件:

    • display: -webkit-box —— 启用 WebKit 盒模型(不能用 flex 或 block)
    • -webkit-box-orient: vertical —— 告诉盒子垂直堆叠子行
    • -webkit-line-clamp: 2(或 3)—— 真正控制行数的开关,值必须为整数
    • overflow: hidden —— 隐藏超出部分,否则省略号不触发

    示例写法(适用于 <h3></h3> 或 <div>):<p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p><div class="aritcle_card flexRow"> <div class="artcardd flexRow"> <a class="aritcle_card_img" href="/xiazai/skill11112" title="CSS工具箱(专业版)"><img src="https://img.php.cn/upload/skill/001/246/273/6adaf20e352aa140.jpg" alt="CSS工具箱(专业版)" ></a> <div class="aritcle_card_info flexColumn"> <a href="/xiazai/skill11112" title="CSS工具箱(专业版)">CSS工具箱(专业版)</a> <p>全功能 CSS 工程手册,覆盖性能优化、无障碍、设计系统与跨浏览器兼容。</p> </div> <a href="/xiazai/skill11112" title="CSS工具箱(专业版)" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div> <pre class='brush:php;toolbar:false;'>.title-clamp-2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }</pre> <p>注意:<code>height 不能设固定值(如 height: 48px),否则可能截断不自然;宽度需由父容器提供约束(比如 max-width: 300px 或 flex 下的 flex-basis)。

    标题在表格 <th> 里怎么截断? <p>表格单元格有特殊渲染逻辑:<code><th> 默认是 <code>display: table-cell,不响应 -webkit-box,直接加 -webkit-line-clamp 无效。
    • 先确保表格用了 table-layout: fixed(否则列宽由内容撑开,截断无从谈起)
    • 给 <th> 设 <code>width 或 max-width(比如 style="max-width: 180px;")
    • 再叠加 white-space: nowrap + overflow: hidden + text-overflow: ellipsis —— 这是单行方案,也是表格里最可控的做法
    • 若坚持要多行,得把 <th> 包一层 <code><div>,再对这个 <code><div> 应用 <code>-webkit-line-clamp 类,否则样式被表格渲染机制吞掉

      Firefox 不支持 -webkit-line-clamp 怎么办?

      它确实不认,且没有等效标准属性。纯 CSS 场景下只有两个务实选择:

      • 接受 Firefox 下显示完整内容(多数业务场景可接受,用户滚动即可看到全貌)
      • 用 line-height × 行数 计算高度 + overflow: hidden 实现“无省略号截断”:比如 line-height: 1.5rem,想卡 2 行就设 height: 3rem,不加 text-overflow,靠视觉裁剪

      真正跨浏览器的多行省略号,目前仍需 JS 辅助(如监听 DOM 渲染后计算行高并手动插入 …),但复杂度陡增,多数项目没必要。

    相关文章

    为什么CSS的line-height设置百分比会出现字体异常

    怎样在CSS逻辑属性中使用inset-block进行国际化定位?

    怎么在CSS中不用!important优雅覆盖框架的高权重样式?

    为什么CSS3 Flex布局会导致子元素的滚动条无法正常出现

    如何用CSS实现Bootstrap4侧边栏折叠收起响应式布局?

    相关标签:

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    上一篇:为什么CSS的line-height设置百分比会出现字体异常 下一篇:如何在微前端乾坤框架中彻底隔离不同应用的CSS样式

    作者最新文章

    热门AI工具

    更多
    Seko
    Seko Hot

    一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

    音述AI
    音述AI Hot

    一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

    SkildArt
    SkildArt Hot

    SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

    豆包大模型

    豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

    小橡皮AI

    一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

    WorkBuddy

    一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

    DeepSeek

    DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

    花生AI
    花生AI Hot

    一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

    PixPix
    PixPix Hot

    PixPix是一款面向电商视觉生产的AI商品图生成工具。

    相关专题

    更多
    css
    css

    css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

    5476

    2023.06.15

    css居中
    css居中

    css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

    1177

    2023.07.27

    css如何插入图片
    css如何插入图片

    cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

    2058

    2023.07.28

    css超出显示...
    css超出显示...

    在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

    4146

    2023.08.01

    css字体颜色
    css字体颜色

    CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

    8645

    2023.08.10

    什么是css
    什么是css

    CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

    7331

    2023.08.10

    css三角形怎么写
    css三角形怎么写

    CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

    2397

    2023.08.21

    css设置文字颜色
    css设置文字颜色

    CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

    3511

    2023.08.22

    DBeaver怎么导入数据
    DBeaver怎么导入数据

    DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

    20

    2026.11.05

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    相关下载

    更多

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Sass 教程
    Sass 教程

    共14课时 | 1.6万人学习

    最新文章

    更多

    PDF工具

    更多
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn