CSS:
#mydiv { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; direction:rtl; }
HTML:
<div id="mydiv">foobar foobar foobar</div>
当#mydiv比其内容更窄时,应该出现如下内容:
…obar foobar
但是,根据我的判断(以及对其他任何尝试此操作的人的公平警告,因为我已经看到了方向:在其他几个地方的rtl解决方案),唯一正确执行此操作的主要浏览器似乎是Firefox. Safari和谷歌浏览器都会将省略号放在文本的左侧,但无论如何都会在右侧截断,如下所示:
…foobar foob
IE9和Opera彻头彻尾的困惑. IE在右侧截断并使文本与省略号重叠. Opera是迄今为止最有创意的,它会使溢出在单个单词上显示一段时间(因为元素变得更窄,即),然后开始截断最左边的单词,但是从右边开始.它也无法渲染省略号,在我做过的一个实验中,甚至将一个™角色一直向左移动.真.所以“foobar foobar foobar™”就变成了:
™foob foobar
另外需要注意的是,webkit浏览器的一个(非常恼人的)潜在选项可能是设置-webkit-rtl-ordering:在左侧截断的视觉效果BUT也按字面顺序呈现相反的字符:
…boofraboof
因此,通过浏览器或某种模糊特征嗅探,理论上可以设置该属性并动态地反转元素的文本.
是否存在简单的跨浏览器解决方法,甚至是基于JS的复杂解决方案?
解决方法
Dotdotdot:
http://dotdotdot.frebsite.nl/
ThreeDots
http://tpgblog.com/2009/12/21/threedots-the-jquery-ellipsis-plugin/
编辑:为了清楚起见,我看到了你提到的同样问题.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。