css 文字不换行 单行文本强制不换行样式指南
核心结论,想要让 css 文字不换行,最基础属性是 white-space nowrap,这个属性可以强制文本在同一行展示,不会因为容器宽度不够自动折行,但是只加这个属性还不够,长英文、长链接、长数字这类连续字符,浏览器依然会在字符中间截断,这种情况就需要搭配 overflow hidden,text-overflow ellipsis 实现超出省略号,或者使用 word-break 相关属性控制断字规则,很多新手只写 white-space nowrap,发现长串英文还是被撑开或者截断,就是没有理解 white-space 和 word-break 的区别,white-space 控制空白和换行行为,word-break 控制单词内部是否允许断行。
基础写法 单行强制不换行
.text {
white-space: nowrap;
}
属性说明
white-space nowrap,合并连续空格,文本只保留一行,遇到容器边界不会自动换行,文本会一直横向延伸,有可能直接撑破父容器,溢出容器边界。
常用组合 不换行加超出省略号
这个是业务最常用,比如标题、列表名称,文字超出宽度之后显示省略号,必须同时三个属性一起写,缺一不可
.title {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 300px;
}
要点,父元素或者当前元素必须设置固定宽度,不然元素宽度自动撑开,省略号不会出现。
长英文长数字处理补充属性
如果是连续英文单词、长网址、一串数字,只写 white-space nowrap,部分浏览器依然会把单词拆开换行,这个时候可以补充
.text {
white-space: nowrap;
overflow: hidden;
word-break: keep-all;
}
word-break keep-all,中文和英文都不在单词内部断行,适合中英文混排不换行场景
word-break normal,默认值,英文单词可以在单词边界换行
word-break break-all,允许任意字符之间断行,这个和不换行需求相反,不要混淆
属性取值对照表
| 属性值 | 效果 |
|---|---|
| white-space normal | 默认,自动换行 |
| white-space nowrap | 强制单行不换行 |
| white-space pre | 保留空格,不自动换行 |
| white-space pre-wrap | 保留空格,宽度不够自动换行 |
| white-space pre-line | 合并空格,宽度不够自动换行 |
常见坑点
1 只写 white-space nowrap,没有 overflow hidden,文字会撑破父盒子,页面出现横向滚动条
2 flex 布局里面子元素文字不换行失效,需要额外给子元素加 min-width 0,flex 子项默认 min-width 是 auto,会被内容撑开,导致 nowrap 不生效
3 表格 td 单元格里面文字自动换行,给 td 加 white-space nowrap,但是表格会被撑宽,需要配合 table-layout fixed 控制表格布局
4 中文文本默认可以在任意汉字间断行,white-space nowrap 可以强制中文单行不换行
问题 1 css 文字不换行,为什么加了 nowrap 长英文还是换行
回答 1 css 文字不换行,white-space nowrap 主要控制整体换行行为,长英文连续字符需要补充 word-break keep-all,才能保证 css 文字不换行,不会在单词内部拆分。
问题 2 css 文字不换行,为什么文字撑出父容器
回答 2 css 文字不换行,white-space nowrap 只是强制单行,没有裁剪溢出内容,想要限制容器宽度,需要加上 overflow hidden,才能防止 css 文字不换行之后撑破盒子。
问题 3 css 文字不换行,flex 里面 nowrap 不生效怎么办
回答 3 css 文字不换行,flex 子项默认最小宽度 auto,内容会撑开盒子,给 flex 子元素增加 min-width 0,就可以正常实现 css 文字不换行加省略号效果。
问题 4 css 文字不换行,td 单元格怎么设置 css 文字不换行
回答 4 css 文字不换行,给 td 标签增加 white-space nowrap,实现 td 里面 css 文字不换行,如果不想表格变宽,还要配合 table-layout fixed 固定表格布局。
本文仅介绍 css 文字不换行相关标准属性用法,不同浏览器版本对断字属性存在细微差异,实际项目建议多浏览器测试,css 标准后续更新属性取值可能调整,代码仅作为技术参考。
相关阅读
-
蓝牙耳机音量小怎么调,主要分为耳机本体按键触控调大、手机媒体音量调大两种方式,同时还要区分是单纯设置音...浏览全文>>
-
核心结论 C 罗最知名的大儿子迷你罗,全名克里斯蒂亚诺・罗纳尔多・儒尼奥尔,出生日期是 2010 年 6 月...浏览全文>>
-
基本医疗保险药品目录简称医保药品目录,是国家医保局统一制定公布的药品报销清单,参保人在定点医药机构使用...浏览全文>>
-
核心结论,CVT 变速箱最大优势是平顺省油,非常适合城市温和代步,短板是极限扭矩偏低,不适合长期激烈驾驶和...浏览全文>>
-
飞利浦电动牙刷充电灯不亮,优先区分是底座供电问题还是牙刷本身故障,大部分情况是充电底座接触脏污供电失效...浏览全文>>
-
现在官方名称是 CUBAL,也就是大家习惯叫的 CUBA,并不是只有知名体育大学才能参加,只要是经教育部批准,具...浏览全文>>
-
伯牙绝弦是小学语文经典文言文篇目,出自《吕氏春秋・本味》,也收录在《列子》相关记载当中,讲述伯牙善弹琴...浏览全文>>
-
核心结论,想要让 css 文字不换行,最基础属性是 white-space nowrap,这个属性可以强制文本在同一行展示...浏览全文>>
-
副标题:游戏内中文聊天输入方法与乱码解决 结论先行:CSGO 原生游戏内聊天框,默认对中文支持很差,直接用系...浏览全文>>
-
月牙泉能够一直没有彻底干涸,核心是地下含水层持续供水,同时依靠地形锁住水体,再加上多年人工生态补水和治...浏览全文>>
- c 罗儿子多大了 年龄计算详解
- css 文字不换行 单行文本强制不换行样式指南
- 小米蓝牙耳机怎么用 配对按键功能详解
- crack 拓展词语 英文词根短语搭配详解
- cpu 是指什么 中央处理器基础概念详解
- 如何保持身心健康 长期稳定养护实操方案
- 葵花子真的致癌吗 黄曲霉毒素风险详解
- 中药学就业方向 岗位路径与发展详解
- cf 斯太尔蝴蝶怎么获得 活动获取全解析
- 梦见假牙掉了 梦境深度解析
- 根腐病怎么治 农业防治综合方案
- 病毒是生物吗 生物学分类判定详解
- cf 火线时刻怎么找不到 功能消失排查教程
- CFA 和 FRM 哪个含金量更高 证书定位对比分析
- build 单词详解 多词性词义与用法说明
- broadcast 可数吗 名词词性考点详解
- br0ther 打印机怎么清零 兄弟打印机清零操作详解
- BOSIDENG 波司登户外极寒中款连帽儿童羽绒服
- beats 需要关机吗 日常使用说明
- baby 什么情况下变 babe 用法辨析
