Я, видимо, не совсем верно выразился. Использование Encode является обязательным (если вам не глубоко по боку безопасность) в том случае, если raw данные от пользователя попадают в базу и ни разу нубским не является :)
Если вы говорите, что документация по Yii2 не объясняет суть и причины использования Html::encode, то вы, наверное, не очень внимательно смотрели.
Александр Шибков: Странно, открываю фиддл - скрипт не отрабатывает. Нет триггера и многоточие не добавляется.
P.s. за решение - не стоит. я это делаю для самообучения, не для репутации :)
Александр Шибков: функцию animate можно записать следующим способом
$.animate({
"height": "100px" //изменяемое свойство
},
500, //длительность анимации
function(){
//место для тела анонимной функции, которая выполнится, после завершения анимации
});
Александр Шибков: быстрого способа на коленке я сейчас не придумаю, но есть такая крутая вещь в css как text-overflow: ellispis, свойство как раз прячет вылезающий за границы блока текст, добавляя в конце многоточие в конце. Правда работает только для текста в одну строку :)
Но погуглив Multiline ellipsis в выдаче куча вариантов как с помощью css можно сделать то, что вы хотите.
Вот один из примеров.
Копните в эту сторону - может почерпнёте что для себя.
Наверное мне пора спать, но я не совсем понимаю: зачем вам каждый раз что-то менять, если в мою конструкцию вместо 230px подставить calc(100% - 4rem) ( p.p.s. ваш читал :D ).
Если есть время - объясните, почему вы этот вариант откидываете, отдавая предпочтения костылям с абсолютным позиционированием и т.д. :)
Вам важно вырезать часть текста или просто спрятать полный текст? Если второе - почему сразу не играться с высотой блока?
1. Устанавливаем max-height блока
2. Используем animate, либо через CSS пишем транзишн на изменение высоты блока
3. При клике по Свернуть/Развернуть узнаем текущую высоту данного блока и в зависимости от неё сворачиваем/разворачиваем его, изменяя текст кнопки
Если вы говорите, что документация по Yii2 не объясняет суть и причины использования Html::encode, то вы, наверное, не очень внимательно смотрели.