`ruby-position` CSS property
Baseline Newly available
This feature works across the latest devices and browser versions. This feature might not work in older devices or browser versions. It's been available across browsers since December 2024.
The ruby-position CSS property defines the position of a ruby element relative to its base element. It can be positioned over the element (over), under it (under), or to the right (inter-character).
Try it
ruby-position: over;
ruby-position: under;
<section id="default-example"> <ruby id="example-element"> 明日 <rp>(</rp><rt>Ashita</rt><rp>)</rp> </ruby> </section>
#example-element {
font-size: 2em;
}
Syntax
/* Keyword values */ ruby-position: over; ruby-position: under; ruby-position: alternate; ruby-position: alternate over; ruby-position: alternate under; ruby-position: inter-character; /* Global values */ ruby-position: inherit; ruby-position: initial; ruby-position: revert; ruby-position: revert-layer; ruby-position: unset;
Values
This property is specified as one of the following keyword values:
-
over
Is a keyword indicating that the ruby has to be placed over the main text for horizontal scripts and right to it for vertical scripts.-
under
Is a keyword indicating that the ruby has to be placed under the main text for horizontal scripts and left to it for vertical scripts.-
alternate - Is a keyword indicating that the ruby alternates between over and under, when there are multiple levels of annotation.
-
inter-character - Is a keyword indicating that the ruby annotation is placed to the right of the base text characters. This value is intended for bopomofo (zhuyin fuhao) ruby.
Formal definition
| Initial value | alternate |
|---|---|
| Applies to | ruby annotation containers |
| Inherited | yes |
| Computed value | as specified |
| Animation type | discrete |
Formal syntax
ruby-position =
[ alternate || [ over | under ] ] |
inter-character
Examples
Ruby positioned over the text
HTML
<ruby> <rb>超電磁砲</rb> <rp>(</rp><rt>レールガン</rt><rp>)</rp> </ruby>
CSS
ruby {
ruby-position: over;
}
Result
Ruby positioned under the text
HTML
<ruby> <rb>超電磁砲</rb> <rp>(</rp><rt>レールガン</rt><rp>)</rp> </ruby>
CSS
ruby {
ruby-position: under;
}
Result
Ruby alternate
HTML
<ruby> <rb>A</rb><rb>B</rb><rb>C</rb> <rtc>Above</rtc> <rtc>Below</rtc> </ruby>
CSS
ruby {
ruby-position: alternate; /* this is also the initial value */
}
Result
Specifications
| Specification |
|---|
| CSS Ruby Annotation Layout Module Level 1 # rubypos |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | |
ruby-position |
84
1Implemented as a non-standard, prefixed, version ofruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start). |
84
79Implemented as a non-standard, prefixed, version ofruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start).12–79
|
38 |
70
15Implemented as a non-standard, prefixed, version ofruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start). |
18.2
7Implemented as a non-standard, prefixed, version ofruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start). |
84
18Implemented as a non-standard, prefixed, version ofruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start). |
38 |
60
14Implemented as a non-standard, prefixed, version ofruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start). |
18.2
7Implemented as a non-standard, prefixed, version ofruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start). |
14.0 |
84
4.4Implemented as a non-standard, prefixed, version ofruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start). |
18.2
7Implemented as a non-standard, prefixed, version ofruby-position, -webkit-ruby-position: it has two properties: before and after (both equivalent, for ltr and rtl scripts to the standard over value used with ruby-align: start). |
alternate |
No |
No |
88 |
No |
No |
No |
88 |
No |
No |
No |
No |
No |
inter-character |
84This value is only supported with the prefixed version of the property. |
84This value is only supported with the prefixed version of the property. |
No |
70This value is only supported with the prefixed version of the property. |
18.2Safari positionsinter-character ruby to the right of the base character, but does not correctly position tone marks for bopomofo (Zhuyin Fuhao) annotations. |
84This value is only supported with the prefixed version of the property. |
No |
60This value is only supported with the prefixed version of the property. |
18.2Safari on iOS positionsinter-character ruby to the right of the base character, but does not correctly position tone marks for bopomofo (Zhuyin Fuhao) annotations. |
14.0This value is only supported with the prefixed version of the property. |
84This value is only supported with the prefixed version of the property. |
18.2WebView on iOS positionsinter-character ruby to the right of the base character, but does not correctly position tone marks for bopomofo (Zhuyin Fuhao) annotations. |
over |
84 |
84 |
38 |
70 |
18.2 |
84 |
38 |
60 |
18.2 |
14.0 |
84 |
18.2 |
under |
84 |
84 |
38 |
70 |
18.2 |
84 |
38 |
60 |
18.2 |
14.0 |
84 |
18.2 |
See also
-
<ruby>,<rt>,<rp>, and<rtc>HTML elements ruby-align- CSS ruby layout module
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/ruby-position