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

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

3 ответа

Решение

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

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

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

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

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

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

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

Другие вопросы по тегам