Since December 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
* Some parts of this feature may have varying levels of support.
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 between the characters on their right side (inter-character).
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;
}
/* 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;
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.
alternateIs a keyword indicating that the ruby alternates between over and under, when there are multiple levels of annotation.
inter-characterWhen specified, it behaves as over in vertical writing modes. Otherwise, it indicates that the ruby has to be placed between the different characters, appearing on the right of the base in horizontal text and forcing the children of the ruby annotation container to have a vertical-rl writing mode.
| Initial value | alternate |
|---|---|
| Applies to | ruby annotation containers |
| Inherited | yes |
| Computed value | as specified |
| Animation type | discrete |
ruby-position =
[ alternate || [ over | under ] ] |
inter-character
<ruby> <rb>超電磁砲</rb> <rp>(</rp><rt>レールガン</rt><rp>)</rp> </ruby>
ruby {
ruby-position: over;
}
<ruby> <rb>超電磁砲</rb> <rp>(</rp><rt>レールガン</rt><rp>)</rp> </ruby>
ruby {
ruby-position: under;
}
<ruby> <rb>A</rb><rb>B</rb><rb>C</rb> <rtc>Above</rtc> <rtc>Below</rtc> </ruby>
ruby {
ruby-position: alternate; /* this is also the initial value */
}
| Specification |
|---|
| CSS Ruby Annotation Layout Module Level 1> # rubypos> |
| 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 |
841Implemented 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). |
8479Implemented 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 | 7015Implemented 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.27Implemented 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). |
8418Implemented 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 | 6014Implemented 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.27Implemented 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 | 844.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.27Implemented 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.2 | 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.2 | 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.2 |
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 |
<ruby>, <rt>, <rp>, and <rtc> HTML elementsruby-align
© 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/ruby-position