2010-05-25 2 views
7

В HTML есть способ равномерного распространения текста, разбитого на несколько строк?Сбалансированная перенос текста в HTML

Например, я не хочу:

 
    Here is some really long label that ends up on 
    two lines. 

Я бы предпочел:

 
        Here is some really long label 
         that ends up on two lines. 
+1

[ 'текст-обертывание: balance'] (https://www.w3.org/TR/css-text-4/# text-wrap) находится в работе. – Gajus

ответ

13

Adobe предложила добавить новую собственность css text-wrap: balance.

В то же время они создали плагин jQuery под названием balance-text для достижения того же результата.

1

В чистом HTML/CSS не существует способ сделать это, потому что нет способ измерения длины линии.

Один из способов сделать это будет с javascript, но вы получите FOBUC, в то время как javascript вычисляет длину строки и разделяет ее соответственно.

Лучший способ избежать этого - разбить строку на PHP/ASP/Что бы вы ни использовали.

+1

Ну, «лучший способ» является необоснованным перед лицом разных шрифтов и (возможно) ограниченной ширины. Например, FireFox имеет минимальный размер шрифта, который, вероятно, закроет такую ​​настройку. – doublep

+3

Что такое «FOBUC»? – aditsu

+1

[FOUC] (http://en.wikipedia.org/wiki/Flash_of_unstyled_content): вспышка незанятого содержимого – kirkaracha

0

Я думаю, вы можете добиться этого, если вы установили фиксированную ширину контейнера-элемента и играли с объектами padding.

1

Несколько обходной путь, но вы можете использовать неразрывные пробелы в течение последних нескольких словах:

<p>Here is some really long label that ends on&nbsp;two&nbsp;lines</p> 
+0

Другим подобным подходом было бы '
' строки вручную, как в '

Вот некоторая действительно длинная метка
, которая заканчивается на двух линиях

' –

 Смежные вопросы

  • Нет связанных вопросов^_^