font-size-adjust

The font-size-adjust CSS property specifies that font size should be chosen based on the height of lowercase letters rather than the height of capital letters. This is useful since the legibility of fonts, especially at small sizes, is determined more by the size of lowercase letters than by the size of capital letters.

/* Use the specified font size */
font-size-adjust: none;
/* Use a font size that makes lowercase
letters half the specified font size */
font-size-adjust: 0.5;
/* Global values */
font-size-adjust: inherit;
font-size-adjust: initial;
font-size-adjust: unset;

Legibility can become an issue when the first-choice font-family is unavailable and its replacement has a significantly different aspect ratio (the ratio of the size of lowercase letters to the size of the font).

To use this property in a way that is compatible with browsers that do not support font-size-adjust, it is specified as a number that the font-size property is multiplied by. This means the value specified for the property should generally be the aspect ratio of the first choice font. For example, a style sheet that specifies

font-size: 14px;  
font-size-adjust: 0.5;

is really specifying that the lowercase letters of the font should be 7px high (0.5 × 14px).

Initial valuenone
Applies toall elements. It also applies to ::first-letter and ::first-line.
Inheritedyes
Mediavisual
Computed valueas specified
Animation typea number
Canonical orderthe unique non-ambiguous order defined by the formal grammar

Syntax

Values

none
Choose the size of the font based only on the font-size property.
<number>

Choose the size of the font so that its lowercase letters (as determined by the x-height of the font) are the specified number times the font-size.

The number specified should generally be the aspect ratio (ratio of x-height to font size) of the first choice font-family. This means that the first choice font, when available, will appear the same size in browsers, whether or not they support font-size-adjust.

0 yields text of zero height (hidden text). Note that some old browsers, like Firefox prior version 40, treated 0 as none.

Formal syntax

none | <number>

Examples

HTML

<p> CSS Examples: font-size-adjust</p>
<br>
<div class="times"> This is the Times font (10px) which is hard to read in small sizes</div>
<p>
<div class="verdana"> This is the Verdana font (10px) which does much better, since it is a sans - serif font.</div>
<br>
<p> Now we 'll do an adjustment:</p>
<p>
<div class="adjtimes"> and the 10px Times, adjusted to the same aspect ratio as the Verdana. Cool, eh?</div>

CSS

.times {
    font-family: Times, serif;
    font-size: 10px;
}
.verdana {
    font-family: Verdana, sans-serif;
    font-size: 10px;
}
.adjtimes {
    font-family: Times, sans-serif; 
    font-size-adjust: 0.58;
    font-size: 10px;
}

Results

Specifications

Specification Status Comment
CSS Fonts Module Level 3
The definition of 'font-size-adjust' in that specification.
Candidate Recommendation Initial definition

The CSS property font-size-adjust was initially defined in CSS 2, but dropped in CSS 2.1. It has been newly defined in CSS 3.

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support

No support [2]

(Yes) 1.0 (1.7 or earlier)[1]
3.0 (1.9)
No support  No support  No support 
Feature Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support ? (Yes) 1.0 (1.9.2) ? ? ? 42.0

[1] Gecko 1.0 only supported this feature on Windows. Since Gecko 1.9 it has support for all platforms. There was a bug in versions prior to Gecko 40.0, which caused font-size-adjust: 0 to be interpreted as font-size-adjust: none. See bug 1144885.

[2] Experimental implementation available when activated the 'Enable experimental Web Platform features' feature is enabled in chrome://flags/.

See also