解决text-overflow: ellipsis;不生效的问题

按照text-overflow: ellipsis;使用规则,在标签样式中添加该属性未生效,例如:
写道
.text {
text-overflow: ellipsis;
}css

<div class="text">长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字</div>css3

以后,发现并无达到咱们想要的预期效果,其实还须要另外2个CSS属性的支持:

写道
.text {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}浏览器

<div class="text">长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字长文字</div>ide

其中,white-space是设置文本不换行,overflow设置标签超出部分自动隐藏,另外提醒,该CSS属性在某些浏览器上不生效,若是不须要照顾不兼容的浏览器,好比IE,能够放心大胆使用。

当把text-overflow设为ellipsis时文本溢出内容就能显示为省略标记,而设为clip时就能把文本溢出的部分裁切掉,不过在表格里面使用text-overflow后依旧不能隐藏超出的文本,具体解决方法祥看本文
在w3cschool中css3中有个文本相关的属性text-overflow,当把它设为ellipsis时文本溢出内容就能显示为省略标记,而设为clip时就能把文本溢出的部分裁切掉,固然,前提是设置好两个属性,那就是white-space:nowrap(强制文本在一行内显示)及overflow:hidden(溢出内容为隐藏),也就是要同时有 google

代码以下:

{
text-overflow:ellipsis或clip;
white-space:nowrap;
overflow:hidden;
}
由于以前有用过很多次这个属性,并且用得也都很顺利,因此最近在弄一些table的时候遇到了td内的内容太多而出现换行从而影响总体的美观的问题,因此我想把文本不换行并且让超出的文本能显示为省略号,因而我就很天然的就去用了上面那三属性而且也为td设置了长度和宽度,结果神了奇,一直没把超出的文本内容给换成省略号,尝试排除了各类我以为有可能的影响后依旧不能解决,因而我只好去google一下,后来终于找到了缘由,就是要在table的样式里定义一个属性 table-layout:fixed,综上,要想解决表格里面使用text-overflow后依旧不能隐藏超出的文本的问题,就必须完整的使用下面这些属性
代码以下
td{
text-overflow:ellipsis或clip;
white-space:nowrap;
overflow:hidden;
width:**px;
}
table{
table-layout:fixed;
}
还有若是想鼠标移动上去时显示被隐藏的文本内容,还能够设置
代码spa

td:hover
{
text-overflow:inherit;
overflow:visible;
} code

相关文章
相关标签/搜索