【问题标题】:how to obtain Text-overflow : ellipsis type style (...) in mozilla如何获得文本溢出:Mozilla中的省略号类型样式(...)
【发布时间】:2011-06-05 05:59:46
【问题描述】:

我正在尝试在 Mozilla 中获取省略号。我发现了一些 jquery 插件,它有助于在 Mozilla 中形成省略号,但是当大量数据到来时,它无法很好地处理页面中的形成脚本错误。

我认为实际上 jquery 会逐字处理每个单词,这需要花费大量时间来执行,这是脚本错误的原因。有没有简单的方法在 Mozilla 或任何可以处理大数据的 jquery 插件中显示省略号。

【问题讨论】:

    标签: html jquery-plugins ellipsis css


    【解决方案1】:

    [编辑] 请注意:自从我在这里发布原始答案后,情况发生了变化。下面详细介绍的 hack 仅适用于 Firefix 版本 3.x。它在 FF4、5 或 6 中工作。在这些版本的 Firefox 中没有针对此问题的已知修复程序。

    不过,省略号功能将包含在 Firefox 7 中,一两个月后就会发布,因此您现在不必等待太久,而且他们现在已将自动更新功能添加到 Firefox 中,大多数用户应该在新版本发布后立即迁移到它。

    有关此主题的更多信息,请参阅此问题:text-overflow:ellipsis in Firefox 4? (and FF5)

    我已经在 cmets 下面注意到了这个警告,但是由于人们仍在支持这个答案,他们可能没有阅读 cmets,所以我正在编辑答案,将其放在此处的顶部。我将在下面保留原始答案以供参考。而且它在 FF3.x 中仍然有效,所以总比没有好。

    原答案如下:


    Firefox 是唯一(目前)不支持 CSS Ellipsis 功能的浏览器。

    好消息是这是一种变通方法。它不是很出名,但确实很好用。

    它通过使用一些自定义 XUL 来工作,然后使用自定义 -moz-binding 样式声明在样式表中引用该 XUL。 (XUL 是 Mozilla 的基于 XML 的用户界面定义语言。整个 Firefox UI 都是用它编写的)

    首先,您需要创建一个包含 XUL 定义的文件。它应该是这样的:

    <?xml version="1.0" encoding="UTF-8"?>
    <bindings xmlns="http://www.mozilla.org/xbl" xmlns:xbl="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
      <binding id="ellipsis">
         <content>
            <xul:window>
               <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
            </xul:window>
         </content>
      </binding>
    </bindings>
    

    将此文件另存为 ellipsis-xbl.xml 在您的网络服务器上的某个位置。

    然后转到您的样式表:

    .myellipsiselement {
      word-wrap:normal;
      white-space:nowrap;
      overflow:hidden;
      -moz-binding:url(ellipsis-xbl.xml#ellipsis);
      -o-text-overflow:ellipsis;
      text-overflow:ellipsis;
    }
    

    显然,将绑定的 URL 更改为您在网站上保存的任何位置。

    现在,Firefox 支持省略号。耶!

    您需要注意一个重要的警告:XUL 与 HTML 的不同之处在于 HTML 会忽略空格,而 XUL 不会。因为绑定意味着您的 HTML 代码在这种情况下被有效地视为 XUL,您会发现如果您在被截断的元素中有任何空白,它将变得可见。

    这意味着如果你有这样的 HTML,你会遇到一些奇怪的显示问题:

    <div>
      some text here that needs an ellipsis
    </div>
    

    您需要将开始和结束标签与文本移动到同一行,如下所示:

    <div>some text here that needs an ellipsis</div>
    

    但是一旦你这样做了,这项技术应该可以完美运行——至少在 Firefox 开始支持正常的 CSS 省略号之前......到那时,任何人都可以猜测会发生什么!

    我们一直在广泛使用这种技术,但应归功于它 - 我们从这里了解到它:http://ernstdehaan.blogspot.com/2008/10/ellipsis-in-all-modern-browsers.html

    【讨论】:

    • @Time Machine -- 嗯???我通常是第一个说 IE 坏话的人,但你的评论是 waaay 错误的 - IE 绝对支持 CSS。事实上,这个特殊的 CSS 功能是 IE 发明的,从 IE5 开始就可以使用。
    • 那是个玩笑。 :)
    • @Time Machine - 啊,对不起。这个评论系统并不总是很明显。 :) 无论如何,是的:IE 早早发明了它。他们为 CSS 所做的为数不多的好事之一。
    • 这肯定解决了这个问题,感谢大数据处理得很好只是需要一些时间..没有脚本错误...:) 当然 IE 的一些好的品质....他们仍然支持这样的风格。 ..
    • 注意:值得向任何阅读本文的人指出,该解决方案在 Firefox 4 中停止工作,因为他们放弃了对用于生成省略号的功能的支持(它显然在 FF3.3 中仍然有效。 x,当然,但现在使用 3.x 的人越来越少)。在 FF4 或 FF5 中没有已知的解决方案。实际的text-overflow 功能将在 FF7 中添加到 Firefox,但与此同时,您不能在 Firefox 中使用 CSS 省略号。
    猜你喜欢
    • 1970-01-01
    • 2011-06-07
    • 2018-07-22
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2017-01-21
    相关资源
    最近更新 更多