Hyphen and hyphenation
The hyphen is a punctuation mark
used to join words and to separate syllables of a single word. The use of
hyphens is called hyphenation.
A common use case of hyphenation – to break
a word so it continues on another line rather than move the whole word to the
next line – might be preferable in web pages for the same reasons it is used
in the print media.
What is being done today
Nowadays designers and people who produce HTML rarely account1
for long words and design breakage those words might cause, thus once in a
while people spot a web page with design broken in unimaginable ways. The
most common solutions dirty hacks to dealing with such breakage include
- Trimming the text to constant amount of characters and appending a horizontal ellipsis;
- Inserting line breaks every constant amount of characters.
The first solution might be very well acceptable where you have well defined space restrictions. For example you need to fit a title or heading into exactly one line, which might be or might not be too short to accommodate the whole text. While the hack is acceptable for mentioned case it certainly is not for dealing with the words in a block of text as reading and comprehending content becomes more difficult.
The second solution is acceptable when a fixed-width font is used and all lines are equal in length. In all other cases the text gets split into seemingly unrelated, senseless lines and the reader in order to comprehend the text has to understand the unusual splitting method first.
The solution – hyphenation
Hyphenation, on the other hand, follows well understood and defined rules of splitting word into parts and does not loose any information like trimming does. In addition the text becomes more balanced regardless of text alignment used, which contributes to the ease of reading.
Hyphenation in HTML
Before hyphens
CSS property the only way to make browser
hyphenate words was to inject soft hyphens2 into the word where
hyphenation is allowed. At the time of writing hyphens
property is still a
part of working draft and
browser support is spotty, therefore using this property is
not feasible yet and insertion of soft hyphens is the only reasonable solution. Luckily
hyphenation algorithms as well as convenient libraries
that implement the algorithms exist. Probably every programming language
including Python, Haskell and even a client
side JavaScript has a library to either hyphenate the words or
inject soft hyphens into the words for you!
Justify all the things
Justified the text may be desired, especially in newspaper’s websites and
blogs as the text in nearly every paper book, newspaper and other print media
is justified too. text-align: justify
does just that, however method to
justify a line is not flawless and to make justified text look better, words
at the end of line should be broken as well (soft hyphens should be
injected).
Now you can ignore all the silly web typography blogs’ recommendations and
instead of avoiding justify
, hyphenate your text and justify
to your
heart’s content!