CSS设置超过长度的文字省略号(转)

本文介绍如何使用CSS的text-overflow属性配合其他样式属性实现文本溢出时显示省略号(...)的效果,适用于固定宽度的容器布局,对SEO友好。
Html代码 收藏代码
<div style="width:200px; white-space:nowrap;overflow:hidden;text-overflow:ellipsis; border:1px solid red">试试看试试看试试看试试看试试看试试看试试看试试看试试看试试看试试看</div>



效果:




语法:
text-overflow : clip | ellipsis
参数:
clip :  不显示省略标记(...),而是简单的裁切
(clip这个参数是不常用的!)
ellipsis :  当对象内文本溢出时显示省略标记(...)
说明:
设置或检索是否使用一个省略标记(...)标示对象内文本的溢出。
请您注意,text-overflow:ellipsis属性在FF中是没有效果的。
示例:
div { text-overflow : clip; }
text-overflow是一个比较特殊的样式,我们可以用它代替我们通常所用的标题截取函数,而且这样做对搜索引擎更加友好,如:标题文件有50 个汉字,而我们的列表可能只有300px的宽度。如果用标题截取函数,则标题不是完整的,如果我们用CSS样式text- overflow:ellipsis,输出的标题是完整的,只是受容器大小的局限不显示出来罢了。
text-overflow属性仅是注解,当文本溢出时是否显示省略标记。并不具备其它的样式属性定义。我们想要实现溢出时产生省 略号的效果。还必须定义:强制文本在一行内显示(white-space:nowrap)及溢出内容为隐藏(overflow:hidden)。只有这样 才能实现溢出文本显示省略号的效果。


有的时候的某段文本太长了,会影响整个的布局,很多人用动态语言来解决这个问题,但必须区分中文和英文,因为中文相当于两个英文字符长度,这样不仅繁琐,而且加重了服务器的负担。其实,我们完全可以使用CSS完美解决这个问题,

Html代码 收藏代码
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;  <!-- 就这三句,,,嘿嘿....->  
### 实现文本超出容器时显示省略号效果 在 Vue 项目中,可以通过 CSS 来实现当文本超出 `div` 容器长度时自动显示省略号的效果。以下是具体的实现方法: #### 使用 CSS 属性组合 为了达到这一目的,可以使用以下三个核心的 CSS 属性[^3]: - **white-space**: 设置为 `nowrap`,防止文字换行。 - **text-overflow**: 设置为 `ellipsis`,表示溢出部分以省略号形式展示。 - **overflow**: 设置为 `hidden`,隐藏溢出的内容。 这些属性需要一起作用才能生效。 ```css .text-ellipsis { white-space: nowrap; /* 防止换行 */ overflow: hidden; /* 隐藏溢出的部分 */ text-overflow: ellipsis; /* 显示省略号 */ } ``` #### 应用于 Vue 组件 可以在 Vue 的模板中定义一个类名并应用该样式。例如,在 `<style>` 标签中添加上述样式,并将其绑定到某个 HTML 元素上。 ```html <template> <div class="container"> <p class="text-ellipsis">{{ longText }}</p> </div> </template> <script> export default { data() { return { longText: "这是一个非常长的文本,超出了容器宽度,应该会显示省略号..." }; } }; </script> <style scoped> .container { width: 200px; /* 设定固定宽度以便观察效果 */ } .text-ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } </style> ``` 以上代码片段展示了如何通过 Vue CSS 结合的方式实现所需功能。 #### 处理多行文本的情况 如果希望支持多行文本的省略号效果,则需要额外引入 `-webkit-line-clamp` 属性以及一些浏览器兼容性的调整[^4]: ```css .multi-line-text { display: -webkit-box; /* 将对象作为弹性伸缩盒子模型显示 */ -webkit-box-orient: vertical; /* 设置或检索伸缩盒对象的子元素的排列方式 */ -webkit-line-clamp: 3; /* 控制显示几行 */ overflow: hidden; /* 隐藏多余内容 */ text-overflow: ellipsis; /* 添加省略号 */ } ``` 注意:此方案仅适用于 WebKit 浏览器引擎(如 Chrome、Safari),其他浏览器可能不完全支持。 --- #### 总结 无论是单行还是多行文本溢出,都可以借助特定的 CSS 属性轻松完成需求。对于单行文本,推荐使用 `white-space`, `overflow`, `text-overflow`;而对于多行文本,则需结合 `-webkit-line-clamp` 进一步扩展能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值