综合下面众家之言,本人的写法如下
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)使用脚本
同样不可靠
