Можно ли использовать CSS для выравнивания текста с переносом слов в конце строки? - PullRequest
6 голосов
/ 01 марта 2012

У меня есть div, который слишком узок для выравнивания текста: justify (слишком большие промежутки), но выглядит неравномерно при выравнивании по правому или левому краю, потому что тогда в конце строк есть большой разрыв Выравнивание по левому краю выглядит лучше, но могу ли я использовать переносы, как в книгах? Используя CSS?

Ответы [ 3 ]

11 голосов
/ 01 марта 2012

Вы можете использовать hyphens: auto при условии, что вы объявили язык контента в HTML, например, используя <html lang=en-US>.

Поддержка браузеров по-прежнему ограничена, но становится все лучше, смотрите http://caniuse.com/css-hyphens

Для хорошего качества вам может потребоваться вручную управлять переносами, например используя мягкие дефисы (&shy;) в словах, которые в противном случае могут быть написаны неправильно.

3 голосов
/ 01 марта 2012

перенос слов зависит от языка;Вы не можете просто поместить переполненные символы в следующую строку и получить тот же эффект, что и в книгах.Правила переноса слов на самом деле довольно сложны (см. http://dictionary2.classic.reference.com/writing/styleguide/division.html),, и единственный способ, которым вы можете сделать это правильно (как в книгах), это либо вручную, либо через клиентский или серверный скрипт; я уверен, что это так.не может быть сделано с использованием только CSS.

Вы можете использовать что-то вроде http://code.google.com/p/hyphenator/

1 голос
/ 01 марта 2012

Для переноса слов в html существуют программы на javascript для добавления того, что нужно к тексту.например, http://code.google.com/p/hyphenator/

Поддержка переноса через браузер ненадежна, а улучшение в его поддержке сомнительно.

...