The hanging-punctuation
CSS property specifies whether a punctuation mark should hang at the start or end of a line of text. Hanging punctuation may be placed outside the line box.
hanging-punctuation
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Syntax
/* Keyword values */ hanging-punctuation: none; hanging-punctuation: first; hanging-punctuation: last; hanging-punctuation: allow-end; /* Two keywords */ hanging-punctuation: first allow-end; hanging-punctuation: first last; hanging-punctuation: last allow-end; /* Three keywords */ hanging-punctuation: first allow-end last; /* Global values */ hanging-punctuation: inherit; hanging-punctuation: initial; hanging-punctuation: revert; hanging-punctuation: revert-layer; hanging-punctuation: unset;
The hanging-punctuation
property may be specified with one, two, or three space-separated values.
Values
none
-
No character hangs.
first
-
An opening bracket or quote at the start of the first formatted line of an element hangs. This applies to:
last
-
A closing bracket or quote at the end of the last formatted line of an element hangs. This applies to:
allow-end
-
A stop or comma at the end of a line hangs if it does not otherwise fit prior to justification.
Stops and commas that are allowed to hang include:
-
U+002C
, COMMA -
U+002E
, FULL STOP -
U+060C
, ARABIC COMMA -
U+06D4
, ARABIC FULL STOP -
U+3001
, IDEOGRAPHIC COMMA -
U+3002
, IDEOGRAPHIC FULL STOP -
U+FF0C
, FULLWIDTH COMMA -
U+FF0E
, FULLWIDTH FULL STOP -
U+FE50
, SMALL COMMA -
U+FE51
, SMALL IDEOGRAPHIC COMMA -
U+FE52
, SMALL FULL STOP -
U+FF61
, HALFWIDTH IDEOGRAPHIC FULL STOP -
U+FF64
, HALFWIDTH IDEOGRAPHIC COMMA
User agents may include additional characters.
Formal definition
Initial value | none |
---|---|
Applies to | all elements |
Inherited | yes |
Computed value | as specified |
Animation type | discrete |
Formal syntax
Examples
Setting opening and closing quotes to hang
HTML
<p> «For a moment, nothing happened. Then, after a second or so, nothing continued to happen.» </p> <p class="hanging"> «For a moment, nothing happened. Then, after a second or so, nothing continued to happen.» </p> <p class="hanging right"> «For a moment, nothing happened. Then, after a second or so, nothing continued to happen.» </p>
CSS
p { width: 15em; border: 1px solid #cccccc; font-size: 2rem; font-style: italic; margin: 1em; } p.hanging { hanging-punctuation: first last; } p.right { text-align: right; }
Result
Specifications
Specification |
---|
CSS Text Module Level 3 # hanging-punctuation-property |
Browser compatibility
Desktop | Mobile | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
hanging-punctuation |
No | No | No | No | 10The charactersU+0027 and U+0022 are not supported by the first and last keywords. |
No | No | No | 10The charactersU+0027 and U+0022 are not supported by the first and last keywords. |
No | No |
allow-end |
No | No | No | No | ≤13.1 | No | No | No | ≤13.4 | No | No |
first |
No | No | No | No | ≤13.1 | No | No | No | ≤13.4 | No | No |
last |
No | No | No | No | ≤13.1 | No | No | No | ≤13.4 | No | No |
none |
No | No | No | No | ≤13.1 | No | No | No | ≤13.4 | No | No |
See also
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/hanging-punctuation