2012-05-20 2 views
5

Я пытаюсь обернуть текст в div, используя css и/или jQuery, чтобы нижняя строка была самой длинной.jquery/css wrap text bottom up

так, а не

__________ 
|this is | 
|text | 
|________| 

было бы сказать

__________ 
|this | 
|is text | 
|________| 

можно легко обернуть текст с помощью

white-space: pre-wrap; 

Но я не могу найти ничего, что позволит мне делать это.

(одна мысль, что я должен был бы обратить вспять текст, найти, где происходит перенос строки, применить <br/> в тех же местах, с текстом в будущем .. но я не знаю, как проверить, где обертывается строка)

+0

Более современный дубликат http://stackoverflow.com/questions/22423951/wrap-text-from-bottom-to-top. –

ответ

0

Я закончил маршрут, реверсировал, проверил, где были разрывы линии, и затем вставляя их соответственно. Пожалуйста, не стесняйтесь использовать мою функцию. Эта функция принимает элемент jQuery (с текстом, который уже обертывает), и перевертывает его текст вверх.

function wrapUp(element){ 
    width = element.width(); 
    string = element.text().split(' '); 
    element.text(''); 
    reversed = string.reverse(); 
    var height = 0; 
    for (var i=0;i<reversed.length;i++){ 
     reversed[i] += ' '; 
     element.text(element.text()+reversed[i]); 
     if (height != element.height()){ 
      reversed.splice(i,0,"<br/>"); 
      i++; 
     } 
     height = element.height(); 
     console.log(element.height()); 
    } 
    element.html(reversed.reverse().join('')); 
} 
+1

Как вы тестируете разрывы строк? – vol7ron

+0

В основном, что делает эта функция, берет контейнер, удаляет его содержимое, помещает их по одному за раз, начиная с последнего. Он проверяет, меняется ли высота контейнера после каждой вставки, где бы ни изменялась высота, должен быть разрыв строки. Таким образом, он помнит, где нужно разрывать линию, и помещает их соответственно в текст без обратного. – BananaNeil

1

Их плагин в JQuery называется bacon

с этим можно обернуть текст в соответствии с вашими потребностями в любой форме вы хотите, я знаю, что вы должны делать вещи, над ним, но я думаю, что это может помочь вам.

$(".baconMe").bacon({ 
    'type' : 'bezier', 
    'c1' : { x : 10,  y : 0 }, 
    'c2' : { x : -115,  y : 170 }, 
    'c3' : { x : 35,  y : 340 }, 
    'c4' : { x : 15,  y : 480 }, 
    'align' : 'right' 
} 
+0

Извините, я попробовал, но на самом деле не смог заставить это работать. – BananaNeil

+0

Во-первых, я не вижу, как это может работать для того, что я ищу. Я хочу, чтобы текст обернулся снизу вверх, оставив верхнюю строку самой короткой, а не фигурой (я не могу сделать специальный случай, потому что этот текст может быть любым). Во-вторых, я в конечном итоге выяснил способ написать правильный ответ, и я разместил его ниже. В-третьих, я попытался применить прямую линию с отрицательным наклоном, это сделало мой текст невидимым, я попытался выполнить съемку, но не знал, как он пытался работать вообще (и документация является субпараметром), поэтому я сдался , и написал мой собственный. – BananaNeil