Свойство text-overflow:ellipsis;
CSS должно быть одной из немногих вещей, которые Microsoft сделала правильно для Интернета.
Все остальные браузеры теперь поддерживают его ... кроме Firefox.
Разработчики Firefox спорят по этому поводу с 2005 года, но, несмотря на очевидную потребность в нем, они, похоже, не могут заставить себя реализовать его (даже экспериментальной -moz-
реализации было бы достаточно).
Несколько лет назад кто-то разработал способ взломать Firefox 3, чтобы он поддерживал многоточие . Хак использует эту -moz-binding
функцию для реализации с помощью XUL. Довольно много сайтов сейчас используют этот взлом.
Плохие новости? Firefox 4 удаляет эту -moz-binding
функцию , а это означает, что этот взлом больше не будет работать.
Итак, как только будет выпущен Firefox 4 (я слышал, в конце этого месяца), мы вернемся к проблеме того, что он не может поддерживать эту функцию.
Итак, мой вопрос: есть ли другой способ обойти это? (Я стараюсь не возвращаться к решению Javascript, если это вообще возможно)
[РЕДАКТИРОВАТЬ]
Большое количество голосов, так что я, очевидно, не единственный, кто хочет знать, но у меня пока есть один ответ, который в основном гласит «используйте javascript». Я все еще надеюсь на решение, которое либо вообще не будет нуждаться в JS, либо, в худшем случае, будет использовать его только как запасной вариант, когда функция CSS не работает. Итак, я собираюсь объявить награду за вопрос, на случай, если кто-то где-то нашел ответ.
[EDIT]
Обновление: Firefox перешел в режим быстрой разработки, но, несмотря на то, что сейчас выпущен FF5, эта функция все еще не поддерживается. И теперь, когда большинство пользователей обновили FF3.6, взлом больше не является решением. Хорошая новость. Мне сказали, что он может быть добавлен в Firefox 6, который с новым графиком выпуска должен выйти всего через несколько месяцев. Если это так, то, думаю, я могу подождать, но жаль, что они не смогли разобраться с этим раньше.
[ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ]
Я вижу, что функция многоточия наконец-то была добавлена в Firefox "Aurora Channel" (т.е. версия для разработки). Это означает, что теперь он должен быть выпущен как часть Firefox 7, который должен выйти в конце 2011 года. Какое облегчение.
Примечания к выпуску доступны здесь: https://developer.mozilla.org/en-US/Firefox/Releases/7
Ответы:
Спадли, вы могли бы добиться того же, написав небольшой JavaScript с помощью jQuery:
Я понимаю, что должен быть какой-то способ, чтобы все браузеры поддерживали это изначально (без JavaScript), но это то, что у нас есть на данный момент.
РЕДАКТИРОВАТЬ Кроме того, вы можете сделать его более аккуратным, прикрепив
css
класс ко всем этим полям фиксированной ширины,fixWidth
а затем выполните что-то вроде следующего:источник
text-overflow:ellipsis;
чтобы я мог использовать параметр CSS в других браузерах.length()
бытьlength
? Это собственность.РЕДАКТИРОВАТЬ 30.09.2011
FF7 отсутствует, эта ошибка устранена и работает!
РЕДАКТИРОВАТЬ 29.08.2011
Эта проблема помечена как решенная и будет доступна в FF 7; в настоящее время планируется выпуск 27.09.2011.
Отметьте свои календари и будьте готовы удалить все те взломы, которые вы использовали.
Старый
У меня есть другой ответ: подождите .
Команда разработчиков FF по горячим следам пытается решить эту проблему.
У них есть предварительное исправление для Firefox 6.
Спокойный, воображаемый, чрезмерно реактивный человек. Firefox находится на пути ускоренного развития. Выпуск FF6 планируется через шесть недель после Firefox 5. Выпуск Firefox 5 запланирован на 21 июня 2011 года.
Так что исправление произойдет где-то в начале августа 2011 ... надеюсь.
Вы можете подписаться на список рассылки, следуя сообщению об ошибке по ссылке в исходном вопросе автора.
Или вы можете щелкнуть здесь ; в зависимости от того, что будет проще всего.
источник
Должен сказать, я немного разочарован тем, что единственный хакерский хакер в моем приложении будет поддерживать FF4. Приведенное выше решение javascript не учитывает шрифты переменной ширины. Вот более подробный сценарий, объясняющий это. Большая проблема с этим решением заключается в том, что если элемент, содержащий текст, скрыт при запуске кода, ширина поля неизвестна. Это было препятствием для меня, поэтому я перестал работать / тестировать его ... но я решил опубликовать его здесь, если он кому-то пригодится. Обязательно проверьте его, так как мое тестирование было менее чем исчерпывающим. Я намеревался добавить проверку браузера, чтобы запускать код только для FF4 и позволить всем другим браузерам использовать их существующее решение.
Это должно быть доступно для игры здесь: http://jsfiddle.net/kn9Qg/130/
HTML:
CSS:
Javascript (использует jQuery)
Это будет называться так:
источник
Я тоже сталкивался с этим гремлином на прошлой неделе.
Поскольку принятое решение не учитывает шрифты переменной ширины, а решение wwwhack имеет цикл While Loop, я добавлю свои $ 0,02.
Я смог резко сократить время обработки моей задачи с помощью перекрестного умножения. По сути, у нас есть формула, которая выглядит так:
Переменная x в данном случае - это то, что нам нужно решить. При возврате в виде целого числа он даст новую длину, которой должен быть переполненный текст. Я умножил MaxLength на 80%, чтобы у эллипсов было достаточно места для отображения.
Вот полный пример HTML:
Я понимаю, что это исправление только JS, но пока Mozilla не исправит ошибку, я просто недостаточно умен, чтобы придумать решение CSS.
Этот пример подходит мне лучше всего, потому что JS вызывается каждый раз, когда сетка загружается в нашем приложении. Ширина столбца для каждой сетки различается, и мы не можем контролировать, на каком компьютере пользователи Firefox просматривают наше приложение (что, конечно, у нас не должно быть этого контроля :)).
источник
Это чистое решение CSS действительно близко, за исключением того факта, что оно заставляет многоточие появляться после каждой строки.
источник