css – 使用RTL在左侧使用文本溢出省略号的几个浏览器兼容性问题

前端之家收集整理的这篇文章主要介绍了css – 使用RTL在左侧使用文本溢出省略号的几个浏览器兼容性问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的目标是创建一个隐藏溢出和省略号的元素,除了我希望隐藏LEFT侧的字符,省略号也在左侧.这适用于大多数浏览器:

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的复杂解决方案?

解决方法

有基于JS / Jquery的解决方案来解决您的问题.一个警告是它们更贵.如果您没有在页面上进行大量更改,那么以下解决方案应该可以正常工作.

Dotdotdot:
http://dotdotdot.frebsite.nl/

ThreeDots
http://tpgblog.com/2009/12/21/threedots-the-jquery-ellipsis-plugin/

编辑:为了清楚起见,我看到了你提到的同样问题.

猜你在找的CSS相关文章