神奇的CSS样式属性 text-overflow:ellipsis

来源:互联网 发布:解放军的勇气知乎 编辑:程序博客网 时间:2024/05/21 11:31

重新试验了一下该日志中提到的 text-overflow:ellipsis 样式写法,我以自己的名义再次作个判定:用 text-overflow:ellipsis 才是一个更完美的标题缩略显示的方法,下面看例子

<div  style ="border:1px solid red;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;white-space:nowrap;width=170px" >在VC6中使用正则表达式解析字符串</div>

<div  style ="border:1px solid red;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;white-space:nowrap;width=170px" >VC中使用CInternetSession抓取网页内容</div>

<div  style ="border:1px solid red;overflow:hidden;text-overflow:ellipsis;-o-text-overflow:ellipsis;white-space:nowrap;width=170px" >开源嵌入式数据库 SQLite 简介</div>

 

正常时显示效果选择后显示效果(分别对应首页和日志页面选择后效果)
在VC6中使用正则表达式解析字符串
VC中使用CInternetSession抓取网页内容
开源嵌入式数据库 SQLite 简介
           


细心看一下正常显示和拖动鼠标选择后的效果,看看原本是省略号的地方变成什么啦,这是用其他实现方法都不是很容易实现的特点。因为首页面与日志页面的样式不一样,所以右边格子里放了两张图片,注意对应一下,通过这样一个异外也给我们更好的验证了 text-overflow:ellipsis 的更强的适应性,如果用其他方式要牵强些。

比较 较为完美的一种标题缩略显示方法 中介绍的方法,这种做法十分简单,你不用关心页面显示字体会怎么变,它只认宽度,因为这一切都由浏览器来进行渲染,浏览器当然最有发言权,它自然也就最清楚自己在做什么,相反当你还在后台甚至是还未显示时的JS中进行截字符串处理,前台展示仍存太多未知数。

使用这个样式属性时,注意其他同时使用的属性的功用,可是有影响的哦,比如overflow和white-space属性值。

 

 

在网页设计中,会遇到文本超过固定长度导致整体的网页变形的情况。程序员往往需要截取固定的长度来实现某些固定长度的控制。介绍一种直接采用CSS的代码控制来实现文本截取的方法。与程序员的直接字符截取的方式有点区别,其优势是可以自动控制文本显示的长度;缺点是不同浏览器的兼容性并不完美。使用到 overflow,text-overflow,white-space 这三个主要的属性,其他的代码属于修饰作用。

    CSS代码:
    <style>
    .texthidden{
     width:200px;
     overflow:hidden;
     text-overflow:ellipsis;
     white-space:nowrap;
     border:1px solid #ddd;}
    </style>

    HTML代码:
    <div class="texthidden">
    CSS让容器的溢出部分内容隐藏起来
    </div>

代码分析:
1. width:200px; //指定宽度:
2. overflow:hidden; //将超出内容隐藏
3. text-overflow:ellipsis; //IE专用属性,文本溢出时显示省略标记();其他浏览器不支持。
4. white-space:nowrap; //强制内容不换行。强制在同一行内显示所有文本,直到文本结束或者遭遇 br 元素

    目前使用这种方法比较成功的示例是Gmail的内容显示,在IE下达到最好的效果。如果是FF那就比较糟糕,总是会出现截取半个中文的效果。其中涉及到最主要的原因是 text-overflow 这个属性只在IE下有效,目前很多CSS属性也存在这个问题,特别重要的是Margin和Padding这两个属性,往往导致页面出现各种不同的效果;在页面设计的时候,需要注意这些属性在不同浏览器的显示效果。