用css控制标题字符溢出,用省略号表示

来源:互联网 发布:devops正在扼杀程序员 编辑:程序博客网 时间:2024/04/24 10:34
css控制文章列表,让标题溢出的文字以省略号方式表现.
<div style="width:300px; height:22px;line-height:22px; white-space: nowrap;text-overflow:ellipsis; overflow:hidden;">测试一下效果看能不能达到只逼供逼供逼供逼供珍贵逼供蚶见多识广薯在时工楞革革工进而杳碴国圆顶 </div>
 
用上面这段代码就可以实现,但如果要实现效果就得结合多个css的定义才能实现..
下面我们来看一下里面的每个css的定义:
 
text-overflow : clip | ellipsis
取值:
clip :  默认值。不显示省略标记(...),而是简单的裁切
ellipsis :  当对象内文本溢出时显示省略标记(...)
 
说明:
设置或检索是否使用一个省略标记(...)标示对象内文本的溢出。
这个属性仅仅作用于水平内联方向的,普通的西方文本的溢出。内联溢出发生在行内的文本超出可用宽度却没有换行机会的时候。
要强制溢出发生并且应用 ellipsis 值,作者必须设置对象的 white-space 属性值为 nowrap 。
假如没有换行机会(例如,对象容器的宽度是狭窄的,而内有很长的没有合理断行的文本),没有应用 nowrap 也有可能溢出。
为了使 ellipsis 值被应用,此属性必须被设置到具有不可视区域的对象。最好的选择是设置 overflow 属性为 hidden 。设置 overflow 属性为 scroll 或者 auto 时,此属性也会应用。但是会有滚动条出现。
通过选择省略标记,隐藏的文本可以被选择。当选择发生时,省略标记会隐藏而被文本替换。
此属性为在DHTML中制作省略标记提供了高效的方法。
此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 textOverflow 。
<----------------------------------------------------------------------------------------------------------------------->
看到上面这段文字提到的另外两个属性都用红色表示了,这个属性值只是对应西方文本而设定的...
 
white-space版本:CSS1  兼容性:IE5.5+ NS4+ 继承性:有
语法:
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 时,你可以使用不换行空格的命名实体 &nbsp; 来添加空格,用 br 元素来添加换行。此属性对你使用文档对象模型(DOM)操作的内容的影响与其对IE显示内容的影响一样。
此属性作用于块对象。
此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
对应的脚本特性为 whiteSpace 。
 
overflow版本:CSS2  兼容性:IE4+ NS6+ 继承性:无
语法:
overflow : visible | auto | hidden | scroll
取值:
visible :  默认值。不剪切内容也不添加滚动条。假如显式声明此默认值,对象将以包含对象的 window 或 frame 的尺寸裁切。并且 clip 属性设置将失效
auto :  在必需时对象内容才会被裁切或显示滚动条
hidden :  不显示超过对象尺寸的内容
scroll :  总是显示滚动条
 
说明:
检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。
所有对象的默认值是 visible ,除了 textarea 对象和 body 对象的默认值是 auto 。设置 textarea 对象此属性值为 hidden 将隐藏其滚动条。
对于 table 来说,假如 table-layout 属性设置为 fixed ,则 td 对象支持带有默认值为 hidden 的 overflow 属性。如果设为 scroll 或者 auto ,那么超出 td 尺寸的内容将被剪切。如果设为 visible ,将导致额外的文本溢出到右边或左边(视 direction 属性设置而定)的单元格。
自IE5开始,此属性在MAC平台上可用。
自IE6开始,当你使用 !DOCTYPE 声明指定了 standards-compliant 模式,此属性可以应用于 html 对象。
对应的脚本特性为 overflow 。
 
上面的问题解决后.但在包含有链接的调用当中.却没有效果.认真看了代码后发现在.如果在div里的是A的属性就会失效...
既然这样那就把定义在li上面的值放到A上面来...结果就可以了....
 
最后的代码如下:
<style type="text/css">
ul,li{padding:0; margin:0; list-style:none;}
li{width:95%;margin:0 auto; height:22px;line-height:22px; }
li a{white-space: nowrap;text-overflow:ellipsis; overflow:hidden; display:block; width:100%;}
</style>
 
<div style="width:300px; padding:5px;">
<ul>
 
<li><a href="#">这是假字这是假字这是假字这是假字这是假字</a></li>
<li><a href="#">这是假字这是假字这是假字这是假字这是假字</a></li>
<li><a href="#">这是假字这是假字这是假字这是假字这是假字</a></li>
<li><a href="#">这是假字这是假字这是假字这是假字这是假字</a></li>
</ul>
</div>
原文链接:http://www.software8.co/wzjs/cssdiv/1231.html