У меня есть div, который слишком узок для text-align:justify (слишком большие промежутки), но все же выглядит неоднородным при выравнивании по правому или левому краю, потому что тогда в конце строк есть большой пробел. Выравнивание по левому краю выглядит лучше всего, но можно ли использовать переносы, как в книгах? Используя CSS?
Могу ли я использовать CSS для выравнивания текста с переносом слов в конце строки?
Ответы (3)
Вы можете использовать hyphens: auto
при условии, что вы объявили язык содержимого в HTML, например. используя <html lang=en-US>
.
Поддержка браузеров по-прежнему ограничена, но становится лучше, см. http://caniuse.com/css-hyphens.
Для хорошего качества вам может потребоваться вручную управлять переносами, например. используя мягкие дефисы (­
) в словах, которые в противном случае могли бы быть неправильно написаны.
Расстановка переносов зависит от языка; вы не можете просто поместить переполненные символы на следующей строке и получить тот же эффект, что и в книгах. Правила расстановки переносов на самом деле довольно сложны (см. http://dictionary2.classic.reference.com/writing/styleguide/division.html), и единственный способ сделать это правильно (как в книгах) — либо вручную, либо с помощью клиентского или серверного скрипта; Я почти уверен, что это невозможно сделать, используя только css.
Вы можете использовать что-то вроде http://code.google.com/p/hyphenator/
Для расстановки переносов в html есть программы на javascript, чтобы добавить в текст то, что нужно. например http://code.google.com/p/hyphenator/.
Поддержка расстановки переносов в сборке браузера ненадежна, и улучшение ее поддержки сомнительно.