【发布时间】:2013-08-23 19:46:41
【问题描述】:
我正在创建一个需要截断溢出文本的网络应用程序。意思是我想将文本显示为某个宽度(比如原始宽度的 90%),然后如果它占用更多空间,则想修剪我的文本。如果我需要修剪任何文本,我会在文本末尾添加椭圆 (...)。
我尝试了以下三种方法。但找不到任何可以在所有设备上运行的方法。
1- 我尝试了基于 CSS 的解决方案。
{
overflow: hidden;
text-overflow: ellipsis;
width:90%;
}
or
{
overflow: hidden;
text-overflow: ellipsis;
width:200px; //somewhere suggested to use with in px rather than %(just tried)
}
但它不能正常工作。然后在谷歌上搜索后,我知道 text-overflow CSS 实际上在 android 手机中效果不佳。
2- 我尝试过使用 window.devicePixelRatio 和 screen.availWidth 两种方法。但是“screen.availWidth”在 Nexus4 中没有给出合适的屏幕尺寸。
var device_width = screen.availWidth;
var device_density = window.devicePixelRatio;
3- 我创建了自己的标题修剪算法。这也不适用于 micromex 和 samsung GT-S6802 等设备。我使用的是 ow/dd 和 oh/dd,其中 ow = original_width ,oh= original_height 和 dd= device_density。
我认为物理设备像素和编程像素之间存在一些差异(可能是一个错误的术语)。我无法使用 mobile_js,因为它还没有准备好生产。但我也会尝试探索它以找出一些解决方案.
但是,如果有人遇到过根据设备(比如 90% 的设备)截断文本的问题,请告诉我。这将有很大帮助。
虽然目前我正在寻找仅适用于 android 设备的解决方案,但如果该解决方案也可以在 ios 上运行,那就太好了。
【问题讨论】:
-
永远不要在 Android 上使用 px。一切从大约 120 像素到 2560 像素。
-
你能描述“不起作用”吗?它会忽略该属性(由于缺乏对文本溢出的支持)还是崩溃并严重烧毁?如果 Android 不支持 text-overflow 属性,您几乎无能为力。
-
我也使用了无包装。它不会修剪,显然也不会添加任何椭圆 (...)。是的,android 不支持 CSS 文本溢出。因此,我尝试了上面提到的 js 解决方案。我正在寻找 javascript/jquery 或 CSS 中的解决方案。
-
你确定不是因为text-rendering property?
-
是的,我确信这不是因为文本渲染......我也经历过这个。我没有使用文本渲染。
标签: javascript android jquery ios css