cross-browser - 使用 RTL 的左侧文本溢出省略号的几个浏览器兼容性问题

标签 cross-browser right-to-left ellipsis css

我的目标是创建一个带有 overflow hidden 和省略号的元素,除了我希望隐藏左侧的字符并且省略号也位于左侧。这适用于大多数浏览器:

CSS:

#mydiv {
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
    direction:rtl;
}

HTML:

<div id="mydiv">foobar foobar foobar</div>

当#mydiv 比它的内容窄时,输出应该是这样的:

...obar foobar

但是,据我所知(并且对尝试此操作的任何其他人发出公平警告,因为我在其他几个地方看到了 direction:rtl 解决方案),唯一的主要浏览器这似乎是 Firefox。 Safari 和 Google Chrome 都会将省略号放在文本的左侧,但无论如何都会在右侧截断,如下所示:

...foobar foob

IE9 和 Opera 完全混淆了。 IE 在右侧截断并使文本与省略号重叠。 Opera,迄今为止最有创意的,将使溢出在单个单词上可见一段时间(随着元素变窄,也就是说),然后开始截断最左边的单词,但从右边开始。它也无法渲染省略号,在我做的一个实验中,它甚至将一个 ™ 字符一直移到左边。真的。所以“foobar foobar foobar™”变成了这样:

™foob foobar

作为附加说明,webkit 浏览器的一个(非常烦人的)潜在选项可能是设置 -webkit-rtl-ordering:visual ,它在左侧截断但也按字面意思反向呈现字符顺序:

...boofraboof

因此,通过浏览器或某种晦涩的特征嗅探,理论上可以设置该属性并动态反转元素的文本。

是否有简单的跨浏览器解决方法,或者甚至是复杂的、基于 JS 的解决方法?

最佳答案

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

点点点: http://dotdotdot.frebsite.nl/

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

编辑:澄清一下,我遇到了与您提到的相同的问题。

关于cross-browser - 使用 RTL 的左侧文本溢出省略号的几个浏览器兼容性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11994646/

相关文章:

Qt:在设计器中禁用布局镜像?

html - 如何让我的 CSS 页脚在移动浏览器上位于网站底部?

javascript - 带有文本类型的 html5 输入框中的微调器?

http - 将 utf8=✓ 添加到查询中有什么意义?

delphi - Delphi 中带有 RTL 布局的工具栏?

html - CSS反转整个网站(镜像效果)

c - 带有省略号的函数会导致段错误

javascript - 隐藏css3多行省略号在没有用处时阅读更多链接

android - 如何在Android TextView中使用自定义省略号

css - 如何在 Safari 中使::选择正确?