Никто не найдет надежного и производительного решения для этого, которое охватывает все браузеры и одинаково хорошо работает во всех из них, так как его не существует. Единственным надежным и эффективным решением будет чистый CSS, который поддерживается только подмножеством браузеров, которые большинство людей желает поддерживать.
Пока все браузеры, которые вы хотите поддерживать, не поддерживают text-overflow: ellipsis
, вы можете иметь либо надежный (медленный js, который просматривает все параметры), либо быстродействующий (подстрока, сервер или клиент).
Единственный браузер, который не поддерживает трюк css - это Firefox.
IE7 + и браузеры webkit, такие как chrome и safari, поддерживают его просто отлично.
Opera поддерживает это -o-text-overflow
Если вы решите не поддерживать Firefox, вы можете поддержать все остальные браузеры, выполнив следующие действия:
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
-o-text-overflow: ellipsis;
Вам нужно white-space: nowrap;
и overflow: hidden;
, чтобы text-overflow
работал хорошо.
Если вы можете жить с текстом, который нельзя выделить, вы можете использовать XUL-хак для firefox , но я редко нахожу его полезным для себя.