[经验]纯css文本溢出省略

xiaoxiao2026-05-08  0

综合下面众家之言,本人的写法如下

width:104px;

display:block;word-break:break-all;height:14px;overflow: hidden;

 

 

.textoverflow a {}{ 2 display:block; 3 width:120px; 4 margin: 0px 0px 0px 3px; 5 white-space: nowrap; 6 overflow: hidden; 7 float: left; 8 -o-text-overflow: ellipsis;    /**//* for Opera */ 9 text-overflow: ellipsis;        /**//* for IE */10}11.textoverflow:after{}{ content: ""; }/**//* for Firefox */12@media all and (min-width: 0px){}{ .textoverflow:after{ content:""; }/**//* for Opera */ }

 

这个并不可靠,但可以看出点门道

 

附:半个字的解决方案

 

1.内容溢出        (1)同时应用: text-overflow:ellipsis; white-space:nowrap; overflow:hidden; 实现了所想要得到的溢出文本显示省略号效果:       <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“><html xmlns=”http://www.w3.org/1999/xhtml“><head><meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ /><title>52CSS</title><style type=”text/css”>ul {width:300px; margin:50px auto;}li {width:300px; line-height:25px; text-overflow:ellipsis; white-space:nowrap; overflow:hidden;}a {color:#03c; font-size:13px;}a:hover {color:#000;}</style></head><body><ul><li><a href=”http://www.bhpub.net/to51du/”>CSS实战精萃 - Pro CSS Techniques </a><li><a href=”http://www.bhpub.net/to51du/”>CSS实战:id是狙击枪 class是双刃剑 合则两利分则两败</a><li><a href=”http://www.bhpub.net/to51du/“>CSS布局实例:CSS标签切换代码实例教程</a><li><a href=”http://www.bhpub.net/to51du/“>Web标准:改变您的网页制作思维方式 节省代码及结构与表现分离</a></ul></body></html>      但是值得注意的一点是:请您特别注意,text-overflow:ellipsis属性在FF中是没有效果的。

    (2)接近完美的CSS标题、列表溢出隐藏       网上很多看到的都是把内容一行横向显示,然后纵向截取,这样不管是中文还是英文,就出现可能截出半个字的情况

这里用的正好相反,如果内容超出就换行,然后横向把换行溢出的部分截取,这样就不会出现半个字情况

IE6、IE7下不管是中文还是英文,不管是连续的还是断开的词或字母,都完美显示

mozilla下,唯一缺陷是:对英文的支持,不能对连续的长串并超过容器宽度的英文进行截取换行,要换也能是遇到词组时才换。就是说,不能能对英文随意截取换行,是以单词为基准的。所以在mozilla下,对于英文来说,还是可能出现截取出半个字情况

其实,如果是英文,只要正常编写,一般都不会出现出现半个字的情况.

这个没有被w3c作为css2的标准,所以mozilla不支持这个随意截取换行属性,不知道css3会不会把这个列入标准中。

 

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“><html xmlns=”http://www.w3.org/1999/xhtml“><head><meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /><title>无标题文档</title><style type=”text/css”><!–.div {padding:0;    list-style-type: none;line-height:22px;margin-bottom:10px;background:#CCCCCC;font-size:12px;word-break:break-all;/*设置或检索对象内文本的字内换行行为。尤其在出现多种语言时(当前任意字内断开并换行,这杨不会出现半个字情况)*/height:22px;/*设置了高度,CSS才知道文本是否超出了容器换行*/overflow:hidden;/*隐藏超出的部分*/}–></style></head><body><div style=”width:200px;”><ul><li class=”div”>¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢</li><li class=”div”>一三五六七八九十是是时刻处了三¢¢¢案上篮得分</li><li class=”div”>www.zgcsd.com上地平台sssssssss¢¢¢ssssss</li><li class=”div”>ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss</li><li class=”div”>sss sss sss sssss ssss sssssss ssssss sss ssssssssssssssss sss</li></ul></div></body></html>

2.浮动导致的内容溢出        大多数情况下,绝对定位导致内容溢出都是源于该方案少了“清楚跟随”的功能       解决方案:(1)用标签清除浮动,在网站中建立一个万能的clear标签,来用于清除float   <div class=”clear”></div>                         (2)精确的控制浮动元素,但是IE有时会大于css所定义的宽度,有时候哪怕就多1px都会把其他的浮动元素挤下去。解决办法:(1)增大区域宽度(2)限制内容注意斜体

3.绝对定位导致的内容溢出         绝对定位遇到最多的是垂直溢出,但是在绝对定位元素预定的宽度不足以容下其子元素时,也会发生水平溢出。        问题的原因:为元素指定绝对定位后,也就意味着从文档流中移除,无法在影响到其他周围元素,它的宽度并不能限制其中子元素的宽度。会随着内容的增多而增大。         权宜之计:(1)尽量用float来定位。                          (2)限制溢出 用overflow                           (3)使用脚本

 

同样不可靠

转载请注明原文地址: https://www.6miu.com/read-5048399.html

最新回复(0)