我正在创建一个需要截断溢出文本的网络应用程序。意思是我想将文本显示为某个宽度(比如原始宽度的 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)
}
但它不能正常工作。然后在谷歌搜索后,我知道文本溢出 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 上运行,那就太好了。