Могу ли я использовать CSS для выравнивания текста с переносом слов в конце строки?

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


person Community    schedule 01.03.2012    source источник


Ответы (3)


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

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

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

person Jukka K. Korpela    schedule 01.03.2012

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

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

person Julian Ceipek    schedule 01.03.2012
comment
Нет, я знаю о правиле переноса. Я имею в виду книги, в которых текст выравнивается, и они просто обрывают слова и ставят его через дефис и вставляют на следующей строке, не соблюдая правила переноса. Я выучил правила расстановки переносов в средней школе. - person ; 01.03.2012
comment
дефис работает! если он поддерживает ваш язык. Но если у вас 3 или 4 языка, файл скрипта будет весить около 200кб. Также есть phpPyphenator, он будет расставлять текст на сервере через дефис. Гораздо лучше, чем файл javascript. Хотя он не поддерживает некоторые языки - person Alex Reds; 08.08.2014

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

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

person Dan D.    schedule 01.03.2012