css超出一行添加省略号属性:text-overflow和white-space

CSS文本溢出与换行技巧
本文详细解析了CSS中white-space、text-overflow和word-wrap属性的使用技巧,展示了如何通过这些属性控制文本的换行、溢出显示省略号及强制断行,适用于各种浏览器环境。

css属性white-space

<p style="width: 300px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;">省略我吧 省略我吧省略我吧省略我吧省略我吧省略我吧省略我吧省略我吧省略我吧省略我吧</p>

测试浏览器: IE6/7/8/9、opera12.02、firefox15.0.1、chrome21.0.1180.89 m

1、text-overflow: ellipsis;

这里的重点样式是  text-overflow: ellipsis;

不过话说text-ellipsis是一个特殊的样式,有关解释是这样的:text-overflow属性仅是注解,当文本溢出时是否显示省略标记。并不具备其它的样式属性定义。要实现溢出时产生省略号的效果还须定义:强制文本在一行内显示(white-space:nowrap)及溢出内容为隐藏(overflow:hidden),只有这样才能实现溢出文本显示省略号的效果。

这里面需要限定宽度、文字显示在一行中(white-space:nowrap;)和使用隐藏属性overflow。

网上给支持低版本的opera一个办法,就是-o-text-overflow:ellipsis;

css超出一行添加省略号属性:text-overflow和white-space

2.white-space属性

normal 默认。空白会被浏览器忽略。

pre 空白会被浏览器保留。其行为方式类似 html 中的 <pre> 标签。

nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。

pre-wrap 保留空白符序列,但是正常地进行换行。

pre-line 合并空白符序列,但是保留换行符。

inherit 规定应该从父元素继承 white-space 属性的值。
Object.style.whiteSpace=normal|nowrap|pre

3.word-wrap

1.(IE浏览器)连续的英文字符和阿拉伯数字,使用word-wrap : break-word ;或者word-break:break-all;实现强制断行

2.(Firefox浏览器)连续的英文字符和阿拉伯数字的断行,Firefox的所有版本的没有解决这个问题,我们只有让超出边界的字符隐藏或者,给容器添加滚动条
.a{word-break:break-all; width:200px; overflow:auto;}

.(Firefox浏览器)使用 table-layout:fixed;强制table的宽度,内层td,th采用word- break : break-all;或者word-wrap : break-word ;换行,使用overflow:hidden;隐藏超出内容,这里overflow:auto;无法起作用

转载于:https://www.cnblogs.com/douglasvegas/p/5420425.html

CSS 中实现文本溢出隐藏并显示省略号效果,通常需要结合多个属性来完成。以下是详细的实现方式原理: ### 单行文本溢出隐藏并显示省略号 要实现单行文本在溢出时显示省略号(`...`),需要使用以下三个 CSS 属性- `white-space: nowrap;`:强制文本在一行内显示,禁止换行。 - `overflow: hidden;`:隐藏超出容器范围的内容。 - `text-overflow: ellipsis;`:当文本溢出时显示省略号。 示例代码如下: ```css .single-line-text { width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } ``` 该方法适用于单行文本,广泛兼容主流浏览器[^5]。 ### 多行文本溢出隐藏并显示省略号 多行文本的省略号显示较为复杂,CSS 原生不直接支持多行省略。一种常见做法是使用 `-webkit-line-clamp` 属性配合 `display: -webkit-box` `-webkit-box-orient` 来实现。这种方式适用于 WebKit 内核浏览器(如 Chrome 移动端浏览器)。 ```css .multi-line-text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; text-overflow: ellipsis; } ``` 上述代码将文本限制为最多显示三行,超出部分隐藏并显示省略号。但需要注意的是,这种方法在非 WebKit 浏览器中可能不兼容,因此在某些场景下推荐通过后端截取字符的方式实现更稳定的兼容性[^3]。 ### 注意事项 - `text-overflow: ellipsis` 只有在 `white-space: nowrap` `overflow: hidden` 同时设置时才生效[^4]。 - 如果文本容器中包含 `inline-block` 元素,可能会导致省略号失效,需检查并调整布局方式[^1]。 - 对于多行文本,若需兼容所有浏览器,建议采用 JavaScript 或后端截断文本的方式作为替代方案[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值