用CSS截断字符串的两种实用方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用CSS截断字符串的两种实用方法相关的知识,希望对你有一定的参考价值。
方法一:
<div style="width:300px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;"> 任意长度的字符串 </div>
说明:优点是内容可以为任何html元素,包括超链接和图片等,在IE6中还会在结尾自动显示省略号。缺点是必须指定宽度数值,并且宽度不能是百分数,否则在IE中会被认为是字符总长的百分比。
方法二:
<input type=”text” style=”width:100%; cursor:default; border-width:0; border-style:none; ” value=”任意长度的字符串” readonly/>
说明:优点是宽度可以设为百分数。但缺点是内容只能为纯文本,不能有超链接等内容。
CSS 截断字符串实现文字自动截断,代码如下:
div.test{
width:200px;
height:14px;
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
text-overflow: ellipsis;/* IE/Safari */
-ms-text-overflow: ellipsis;
-o-text-overflow: ellipsis;/* Opera */
-moz-binding: url("ellipsis.xml#ellipsis");/*FireFox*/
}
关键是text-overflow,其语法如下:
text-overflow:clip | ellipsis
clip:不显示省略标记(...),而是简单的裁切
ellipsis:当对象向内文本溢出时显示省略标记(...)
要注意的是:这个属性是IE专用的!不过,却非只有IE可用。该标签虽然没有被乖哦公开支持采纳,但却被很多浏览器的私有属性所包含。text-overflow单独使用是不起作用的,必须有white-space:nowrap;overflow:hidden;这两句的配合方可。前一句的作用是强制在同一行内显示所有文本,直到文本结束或者遭遇br对象。
不难看出,用text-overflow的最佳场所不是文章的行文,而是用以单行显示的标题或摘要的列表。
语法:
white-space : normal | pre | nowrap
取值:
normal : 默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行
pre : 换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为 standards-compliant mode 支持。如果 !DOCTYPE 声明没有指定为 standards-compliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。参阅 pre 对象
nowrap : 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。参阅 noWrap 属性
说明:
设置或检索对象内空格字符的处理方式。
空格字符,像换行,空格,TAB,在HTML文档中默认的是被忽略的。当此属性设置为 normal 或者 nowrap 时,你可以使用不换行空格的命名实体 来添加空格,用 br 元素来添加换行。此属性对你使用文档对象模型(DOM)操作的内容的影响与其对IE显示内容的影响一样。
此属性作用于块对象。
此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 whiteSpace。
复制代码
代码如下:<div style="width:300px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;"> 任意长度的字符串 </div>
说明:优点是内容可以为任何html元素,包括超链接和图片等,在IE6中还会在结尾自动显示省略号。缺点是必须指定宽度数值,并且宽度不能是百分数,否则在IE中会被认为是字符总长的百分比。
方法二:
复制代码
代码如下:<input type=”text” style=”width:100%; cursor:default; border-width:0; border-style:none; ” value=”任意长度的字符串” readonly/>
说明:优点是宽度可以设为百分数。但缺点是内容只能为纯文本,不能有超链接等内容。
CSS 截断字符串实现文字自动截断,代码如下:
复制代码
代码如下:div.test{
width:200px;
height:14px;
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
text-overflow: ellipsis;/* IE/Safari */
-ms-text-overflow: ellipsis;
-o-text-overflow: ellipsis;/* Opera */
-moz-binding: url("ellipsis.xml#ellipsis");/*FireFox*/
}
关键是text-overflow,其语法如下:
text-overflow:clip | ellipsis
clip:不显示省略标记(...),而是简单的裁切
ellipsis:当对象向内文本溢出时显示省略标记(...)
要注意的是:这个属性是IE专用的!不过,却非只有IE可用。该标签虽然没有被乖哦公开支持采纳,但却被很多浏览器的私有属性所包含。text-overflow单独使用是不起作用的,必须有white-space:nowrap;overflow:hidden;这两句的配合方可。前一句的作用是强制在同一行内显示所有文本,直到文本结束或者遭遇br对象。
不难看出,用text-overflow的最佳场所不是文章的行文,而是用以单行显示的标题或摘要的列表。
语法:
white-space : normal | pre | nowrap
取值:
normal : 默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行
pre : 换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为 standards-compliant mode 支持。如果 !DOCTYPE 声明没有指定为 standards-compliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。参阅 pre 对象
nowrap : 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。参阅 noWrap 属性
说明:
设置或检索对象内空格字符的处理方式。
空格字符,像换行,空格,TAB,在HTML文档中默认的是被忽略的。当此属性设置为 normal 或者 nowrap 时,你可以使用不换行空格的命名实体 来添加空格,用 br 元素来添加换行。此属性对你使用文档对象模型(DOM)操作的内容的影响与其对IE显示内容的影响一样。
此属性作用于块对象。
此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 whiteSpace。
以上是关于用CSS截断字符串的两种实用方法的主要内容,如果未能解决你的问题,请参考以下文章