When using a fixed width font, I'd like to specify the width of an HTML element in characters.
The "em" unit is supposed to be the width of the M character, so I should be able to use it to specify a width. This is an example:
<html>
<head>
<style>
div {
font-family: Courier;
width: 10em;
}
</style>
</head>
<body>
<div>
1 3 5 7 9 1 3 5 7 9 1
</div>
</body>
</html>
The result is not what I wanted as the browser line breaks after column 15, not 10:
1 3 5 7 9 1 3 5
7 9 1
(Result in Firefox and Chromium, both in Ubuntu.)
Wikipedia's article says that an "em" is not always the width of an M, so it definitely looks like the "em" unit can't be trusted for this.
ch
unitThe unit you're looking for is ch
. According to the MDN docs:
ch
: Represents the width, or more precisely the advance measure, of the glyph "0" (zero, the Unicode character U+0030) in the element'sfont
.
It is supported in current versions of major browsers (caniuse).
pre {
width: 80ch; /* classic terminal width for code sections */
}