В моей текущей задаче нужно было расположить текст по ширине с выравниванием последней строки по центру. Решением могло быть CSS свойство text-align-last, но оно поддерживается только в Internet Explorer'е. Поиск подобных плагинов JQuery не дал результатов, поэтому был написан свой.
Готовый плагин я выложил сюда
Как видно из примера, в качестве параметра передаётся CSS для последней строки.
endLineTag — Имя тега для распорки. По умолчанию «div».
endLineClass — Имя класса для распорки. По умолчанию «endLine».
lastLineTag — Имя тега для последней строки. По умолчанию «span».
lastLineClass — Имя класса для последней строки. По умолчанию «spanLastLine».
anchorPrefix — Префикс класса для якоря, на случай конфликтов. По умолчанию «an». Имя класса всегда случайное. Префикс+случайное число от 0 до 100000.
Нам нужно у всех абзацев обернуть последнюю строку в DIV с классом LastLineOfP:
UPDATE
Сделав работу над ошибками добавил в плагин следующее:
Готовый плагин я выложил сюда
Пример использования
$(selector).lastLine({
'display':'block',
'text-align':'center'
});
Как видно из примера, в качестве параметра передаётся CSS для последней строки.
Дополнительные опции
endLineTag — Имя тега для распорки. По умолчанию «div».
endLineClass — Имя класса для распорки. По умолчанию «endLine».
lastLineTag — Имя тега для последней строки. По умолчанию «span».
lastLineClass — Имя класса для последней строки. По умолчанию «spanLastLine».
anchorPrefix — Префикс класса для якоря, на случай конфликтов. По умолчанию «an». Имя класса всегда случайное. Префикс+случайное число от 0 до 100000.
Пример
Нам нужно у всех абзацев обернуть последнюю строку в DIV с классом LastLineOfP:
$("p").lastLine({},{
'lastLineClass':'LastLineOfP',
'lastLineTag':'div'
});
UPDATE
Сделав работу над ошибками добавил в плагин следующее:
- Поиск последней строки идет путем добавления якоря с конца текста, а не перебором слов. Спасибо, egorinsk
- Идет определение приблизительной ширины колонки. Нужно чтоб поставить правильную распорку. (Нужна оптимизация)
- Если последней строке указать выравнивание по ширине, то так оно и будет. Спасибо Dmitry_f за пример.
- Если конец строки находится внутри другого объекта, например в span, то этот объект закрывается.
- Изменился синтаксис использования плагина, появились настройки.