Chapter 7. The Art of the Word

Chapter 7. Graphical Text Layout

Text in SVG is treated very similarly to shapes. Individual letters can be positioned anywhere in the graphic and can be filled or stroked (or both). Instead of using geometric attributes to define this “text shape,” you use the text content of the element itself, combined with font-selection style properties and a few SVG-specific text layout attributes and properties.

The font-selection properties in SVG are entirely borrowed from core CSS. If you’re familiar with styling text with CSS (and we’re assuming you are) you are halfway to styling SVG text. You can even use web fonts declared with an @font-face rule, although external font files—like external stylesheets—are restricted in some SVG contexts.

SVG text layout, in contrast, does not reuse CSS layout. When used to style HTML, CSS lays out text by dividing the page into boxes and then wrapping streams of text within them. If you change the styles of a section of HTML text so that it takes up more space, the rest of the text is pushed out of the way, or wraps to a new line. SVG text doesn’t (yet) work like that.

In SVG, each <text> element is independent, positioned exactly where you place it, even if it overlaps other content. There are ways to make SVG text flow in continuous streams, but it takes much more work than the equivalent CSS layout. SVG text is therefore best reserved for its intended purposes: figure labels and short snippets of precisely positioned ...

Get Using SVG with CSS3 and HTML5 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.